Update a MySQL table from CSV files

added on December 5, 2012 by Jason Beckett (jbeckett@primehealthcare.com)

The scenario for this particular automate task was that we had text, CSV reports that we needed to import in to a MySQL database and needed to clear the particular table of all records before we started a new import. In order for this task to work we had to share the directory where the reports were at and need the task to loop through all of the files in the directory.

The task steps are as follows:
Create a variable named "var_FilePath" with an initial value of "\\\\192.168.1.1\\sharename\\" (Notice the double backslash. It's a small nuance of MySQL that a backslash is a command character so you need a double backslash to represent a single backslash)
Create a variable named "var_FullPath"
Establish SQL Connection using...
Here you use the built-in ODBC connection browser to connect to the MySQL database. IMPORTANT: You need to install the MySQL for Windows driver to be able to make this connection. You can get the driver at: http://dev.mysql.com/downloads/connector/odbc
Execute the SQL statement: "TRUNCATE TABLE tablename"
Why use the TRUNCATE TABLE statement rather than UPDATE TABLE? There's a great debate in online forums about the merits of both but in this instance we wanted a clean table so the TRUNCATE statement was more efficient.
Loop through files in directory "\\192.168.1.1\sharename" Do not include the path in the variable. Create and populate dataset "ds_files" with details of the file(s).
Set variable var_Fullpath to value "%var_Filepath & ds_Files.Name%"
So what is this about? We need the MySQL statement to grab the files from the shared directory but we needed the value to be in the right format. So this step concatenates the variable var_FilePath and the file name of the report so that we get the final value of \\\\192.168.1.1.\\share\\report.csv
Execute SQL statement: "LOAD DATA LOCAL INFILE '%var_FullPath%' INTO TABLE tablename COLUMNS TERMINATED BY '|' LINES TERMINATED BY '\n' IGNORE 1 LINES (COLUMN1,COLUMN2,COLUMN3);".
End Loop
Close SQL Connection

Download This Task (0.8kb) Sample Update MySQL DB.aml
Would you like to upload a Sample Task or Workflow to the User Resource Center? Click here!



More Sample Tasks and Workflows

JSON Loop Structure, Encode, Decode Sample (task) 4/30/17Leonard Amabile

This sample task will demonstrate the following: - Decode JSON string into structure/array - Loop structure/array and display values - Encode structure/array into JSON string (raw or formatted)

Round up to Whole Number Using VB Round() Function 4/24/17Leonard Amabile

The VB round() function, by default rounds to the nearest whole number based on the following: 10.00 through 10.50 = 10 10.51 through 10.99 = 11 There are scenarios where you want to round up all decimal values to the nearest whole number. Based on the above criteria, adding 0.5 to any numeric value with a decimal will cause the round() function to round up. For example: 10.00 + .50 = 10 round(10.5) 10.10 + .50 = 11 round(10.6) 10.90 + .50 = 11 round(11.4) The attached tasks will demonstrate the round() function usage to round up numeric values.

Restart a Service (Automate and Intermapper) 3/27/17Network Automation

This sample task will allow you to use Automate and Intermapper to restart a service.

DDE Sample (task) 2/24/17Leonard Amabile

The attached task demonstrates DDE Execute, DDE Poke and DDE Request. The task assumes that Excel is running with a worksheet named Sheet1. DDE Execute: Maximizes the Excel spreadsheet. DDE Poke: Will write the number 7 in row 1 column 1 of Sheet1. DDE Request: Will grab the value from row 1 column 1 of Sheet1 and populate variable varTest.

Workflow Loop Sample (workflow) 8/22/16Leonard Amabile

This sample demonstrates how a workflow loops through a shared dataset using the evaluation object and NO loops within the tasks.

Inline Padding Sample (task) 8/22/16Leonard Amabile

This sample demonstrates how to pad a string inline with leading or trailing spaces.

Split filename into two variables 5/15/15Valentineo McGowan

A task has a name of 'abc_123.txt' I would like the folder name to be the prefix of the filename prior to the "_" delimiter 'C:\abc'. File 123.txt will then be placed inside C:\abc\123.txt

Count Rows in TXT/CSV using Regular Expression 5/15/15Valentineo McGowan

I have a *.txt or *.csv containing column headers and X rows of data. Using RegEx the task simply counts the number of rows based on carriage returns. Great for csv files that have X amount of records and you simply need a total count of rows minus the headers.

Dataset to CSV File using Excel action 5/15/15Valentineo McGowan

How do I create a CSV file from a dataset without using Interactivity actions inside MS Excel, ie, 'File Save As.'? Here's how to create a CSV file in one step using a dataset with our 'Excel - Set cells' activity.

Dataset to CSV using ODS action 5/15/15Valentineo McGowan

How do I create a CSV file from a dataset without Microsoft Excel being present on my machine? Here's how to create a CSV file in one step using a dataset with our new 'ODS (OpenDocument Spreadsheet) - Set cells' activity.

 

Leave a Comment

Please sign in to your account or your comment will be forever stored under "anonymous".
Include Code Snippet

Search the URC

Subscribe to Version History via RSS
Subscribe to Version History via RSS
Version Watcher

11.0.1 changelog
11.0.1 changelog
other versions downloads

Contribute

Subscribe to Latest Resources via RSS
Subscribe to Latest Resources via RSS
Latest Resources

show filter options

Subscribe to Forum Posts via RSS
Subscribe to Forum Posts via RSS
Forum Posts