-3

我有一张名为Books. 它的列是indexNum, Bookname, Bookedition, 其中indexNum是主键并且是自动递增的。

我试图向表中插入数据,但是插入命令被拒绝。我尝试了以下语句:

INSERT INTO Books VALUES ('', Birds, a12)
INSERT INTO Books VALUES (NULL, Birds, a12)
INSERT INTO Books VALUES (Bookname, Bookedition)( Birds, a12)

前两个语句不起作用。最后一条语句第一次起作用,但是,下一次它说 PK 是重复的。

如何正确插入多行?

4

2 回答 2

1

你的语法有点不对劲。我建议使用列列表。查看有关正确语法的文档。确保字符串用单引号括起来。

INSERT INTO Books (Bookname, Bookedition) VALUES ('Birds', 'a12')
于 2013-01-15T19:10:48.540 回答
0
INSERT INTO Books (BookName, BookEdition) 
VALUES ('Birds' , 'a12')

- 编辑

听起来你错过了你的身份栏。如果你可以改变你的桌子,考虑这样做。

如果没有,请尝试使用MAXIFNULL(对于 MySQL)或ISNULL(对于 SQL Server)这样的方法:

INSERT INTO Books (IndexNum, BookName, BookEdition) 
SELECT IFNULL(Max(indexNum),0) + 1 as NewIndexNum, 'Birds', 'a12' 
FROM Books

这是SQL 小提琴

于 2013-01-15T19:10:49.987 回答