如何在Java derby中自动增加数据库列?

时间:2017-02-17 16:14:40

标签: java sql derby auto-increment

这是我到目前为止尝试创建表

的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

虽然相同。有什么建议吗?

3 个答案:

答案 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() + "')";