Синтаксическая ошибка при попытке вставить несколько строк в SQL? - PullRequest
0 голосов
/ 18 марта 2019

Я пытаюсь сохранить несколько значений в таблице с двумя столбцами в одной команде. Вот моя команда,

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

Я получаю красное подчеркивание после моей первой пары значений, где у меня есть запятая. Что я делаю не так?

Ответы [ 2 ]

1 голос
/ 18 марта 2019

Я бы начал с перечисления столбцов:

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

Не все базы данных поддерживают VALUES с несколькими строками.Так что может быть причиной вашей проблемы.

Если вы используете, скажем, Oracle, который не поддерживает это, вы можете использовать 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;
0 голосов
/ 18 марта 2019

поместите имя вашего столбца явно, если в вашей таблице существует больше столбцов

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