Skip to content Skip to sidebar Skip to footer

Syntax Error When Trying To Insert Multiple Rows In SQL?

I am trying to store multiple values into a table with two columns in a single command. Here is my command, INSERT INTO CATEGORY VALUES('BUS','BUSINESS'), ('CHN', 'CHILDREN'), ('CO

Solution 1:

I would start by listing columns:

INSERT INTO CATEGORY (<colname1>, <colname2)
    VALUES ('BUS','BUSINESS'), ('CHN', 'CHILDREN'), ('COK', 'COOKING'), 
           ('COM', 'COMPUTER'), ('FAL', 'FAMILY LIFE'), ('FIT', 'FITNESS'), 
           ('SEH', 'SELF HELP'), ('LIT', 'LITERATURE');

Not all databases support VALUES with multiple rows. So that could be the cause of your problem.

If you are using, say, Oracle that doesn't support this, you can use UNION ALL:

INSERT INTO CATEGORY (<colname1>, <colname2)
    SELECT 'BUS', 'BUSINESS' FROM DUAL UNION ALL
    SELECT 'CHN', 'CHILDREN' FROM DUAL UNION ALL
    . . .
    SELECT 'LIT', 'LITERATURE' FROM DUAL;

Solution 2:

place your column name explicitly if more column exist in your table

INSERT INTO CATEGORY(col1,col2)
VALUES('BUS,BUSINESS'),
('CHN', 'CHILDREN'), 
('COK', 'COOKING'),
('COM', 'COMPUTER'),
('FAL', 'FAMILY LIFE'),
('FIT', 'FITNESS'), ('SEH', 'SELF HELP'), 
('LIT', 'LITERATURE');

Post a Comment for "Syntax Error When Trying To Insert Multiple Rows In SQL?"