下面是我到目前为止尝试创建表的SQL
CREATE TABLE tblPosts (nId INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
strContent VARCHAR(140) NOT NULL,
strLink VARCHAR(200),
strImage VARCHAR(200));
使用
String sql = "INSERT INTO tblPosts VALUES ('" + textFieldContent.getText() + "', '" +
textFieldLink.getText() + "', '" + textFieldImage.getText() + "')";
我得到一个错误,告诉我我没有提供nId列值,但是如果列自动递增,我不应该这样做,对吗?
我还尝试使用IDE在数据库上创建表,如下所述
Alter a table column with auto increment by 1 in derby
不过反应是一样的。有什么建议吗?
发布于 2017-02-18 00:23:07
我猜想,因为您没有在SELECT中指定列名,所以会混淆数据应该放在哪些列中。我会在INSERT命令中指定列名。
发布于 2018-08-19 02:11:54
您需要像这样包含Start with 1, Increment by 1
CREATE TABLE tblPosts (nId INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY(Start with 1, Increment by 1),
strContent VARCHAR(140) NOT NULL,
strLink VARCHAR(200)
发布于 2020-08-14 19:53:46
您需要将auto_increment列设置为默认值,如下所示:
String sql = "INSERT INTO tblPosts VALUES ( DEFAULT, '" + textFieldContent.getText() + "', '" +
textFieldLink.getText() + "', '" + textFieldImage.getText() + "')";
https://stackoverflow.com/questions/42302541
复制相似问题