我正在学习SQL,并希望创建一个简单的表:
Create table kante (v int, n int);
INSERT INTO kante VALUES (1,2), (2,3), (3,4), (2,3), (4,5);
SELECT * from kante;
但是,当使用这些在线编辑器时,我总是收到错误消息。
您能帮我解决我的错误吗? 谢谢
答案 0 :(得分:0)
首先,每当使用insert
时,都要学习列出要插入的列。因此insert
应该看起来像:
INSERT INTO kante(v, n)
VALUES (1,2), (2,3), (3,4), (2,3), (4,5);
这不会影响您的代码是否有效;这只是一个好主意。
我想到两件事。如果要从代码中调用此语句,则可能在一个仅包含一个语句的调用中包含多个语句。但是,您不会提及任何这种语言。
第二,并非所有数据库都支持VALUES
的多个行插入。例如,您的代码肯定可以在MySQL中运行(请参见SQL Fiddle here)。但是,它在Oracle中不起作用。
因此,您可以通过使用多个INSERT
语句来解决问题:
INSERT INTO kante(v, n) VALUES (1, 2);
INSERT INTO kante(v, n) VALUES (2, 3);
INSERT INTO kante(v, n) VALUES (3, 4);
INSERT INTO kante(v, n) VALUES (2, 3);
INSERT INTO kante(v, n) VALUES (4, 5);
答案 1 :(得分:0)
一次尝试一个
Create table kante (v int, n int);
INSERT INTO kante (n,v) VALUES (1,2);
INSERT INTO kante (n,v) VALUES (2,6);
答案 2 :(得分:0)
问题是当您尝试一起运行3条语句时。尝试分别运行每个语句。也就是说,为清楚起见,首先运行CREATE
语句,然后运行INSERT
语句,最后运行SELECT
查询。
答案 3 :(得分:0)
我认为同时插入它是一个坏主意, 试试这个:
INSERT INTO kante(v,n) VALUES (1,2);
INSERT INTO kante(v,n) VALUES (2,3);....