这是我到目前为止尝试创建表
的SQLCREATE 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
虽然相同。有什么建议吗?
答案 0 :(得分:1)
我猜想,因为你没有在SELECT中指定列名,所以对于数据应该进入哪些列感到困惑。我将在INSERT命令中指定列名。
答案 1 :(得分:0)
您需要包括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)
答案 2 :(得分:0)
您需要像这样将THAT auto_increment列设置为DEFAULT:
String sql = "INSERT INTO tblPosts VALUES ( DEFAULT, '" + textFieldContent.getText() + "', '" +
textFieldLink.getText() + "', '" + textFieldImage.getText() + "')";