Kevin
Kevin

Reputation: 2688

MySql Bulk(ish) Insert

I'm attempting to do a "bulk" insert with the following query:

INSERT INTO `order_status_histories` VALUES ('3602','52efabe9-5f8c-4512-a994-3227c63dd20e','1','','Order recieved','2014-02-03 16:47:05','2014-02-03 16:47:05'),('3603','52eff713-54fc-4be0-9389-68d5c63dd20e','1','','Order recieved','2014-02-03 22:07:47','2014-02-03 22:07:47'),('3604','52effd1a-bc14-4095-97fd-6d46c63dd20e','1','','Order recieved','2014-02-03 22:33:30','2014-02-03 22:33:30')

However, it is failing, because the first column in the table is recordID, and does not exist in the insert statement.

How can I get around this issue?

Upvotes: 0

Views: 39

Answers (1)

andrewsi
andrewsi

Reputation: 10732

When you use

INSERT INTO `order_status_histories` VALUES (....)

you need to pass each value that the table structure requires, in the correct order. You can omit fields from the values if they have a default value in the table structure.

Most of the time, it's better to explicitly list the fields that you want to insert to - if nothing else, it means that if the table structure changes, you won't need to re-write your SQL statements. Try changing your SQL statement so it's structured as:

INSERT INTO `order_status_histories` (field1, field2, ....) VALUES ('value1', 'value2', ....)

Upvotes: 2

Related Questions