MySQL - Multiple set on LOAD DATA INFILE

20,517

Solution 1

I do not understand if columns inserted_date and inserted_by already exists in your table. If no than you can add them before runing LOAD DATA INFILE:

LOAD DATA INFILE 'name.csv' INTO TABLE table1
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(@no, @name)
set
  no = @no,
  name = @name,
  inserted_date = now(),
  inserted_by = 'me'

Solution 2

something like this will do it:

LOAD DATA INFILE 'name.csv' INTO TABLE table1 
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES
    SET inserted_date=CURRENT_DATE(), inserted_by='me'

Take a look at the manual: http://dev.mysql.com/doc/refman/5.1/en/load-data.html

Share:
20,517
Praditha
Author by

Praditha

Coding is Not Crime

Updated on February 17, 2020

Comments

  • Praditha
    Praditha over 4 years

    I've a table_name like this:

    No | Name | Inserted_Date | Inserted_By
    =====================================
    

    and then I've file name.csv like this

    no,name
    1,jhon
    2,alex
    3,steve
    

    I want to load these file table_name using syntax like this:

    LOAD DATA INFILE 'name.csv' INTO TABLE table1
    FIELDS TERMINATED BY ','
    LINES TERMINATED BY '\n'
    IGNORE 1 LINES
    ???
    

    the question is, what should I put on ??? so I can store data like this:

    No | Name  | Inserted_Date | Inserted_By
    =====================================
    1  | jhon  | sysdate()     | me
    2  | ales  | sysdate()     | me
    3  | steve | sysdate()     | me