我试图在一个命令中将多个值存储到具有两列的表中。这是我的命令,
INSERT INTO CATEGORY
VALUES('BUS','BUSINESS'), ('CHN', 'CHILDREN'), ('COK', 'COOKING'), ('COM',
'COMPUTER'), ('FAL', 'FAMILY LIFE'), ('FIT', 'FITNESS'), ('SEH', 'SELF HELP'),
('LIT', 'LITERATURE');
在我有逗号的第一对值之后,我得到红色下划线。我在做什么错了?
答案 0 :(得分:1)
我将从列出列开始:
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;
答案 1 :(得分:0)
如果表中存在更多列,请明确放置列名称
INSERT INTO CATEGORY(col1,col2)
VALUES('BUS,BUSINESS'),
('CHN', 'CHILDREN'),
('COK', 'COOKING'),
('COM', 'COMPUTER'),
('FAL', 'FAMILY LIFE'),
('FIT', 'FITNESS'), ('SEH', 'SELF HELP'),
('LIT', 'LITERATURE');