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

How to auto increment database column in Java derby?

这是 SQL 目前为止我尝试创建 table

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 在数据库上创建 table,如此处所述

Alter a table column with auto increment by 1 in derby

但回复相同。有什么建议吗?

我猜想因为您没有在 SELECT 中指定列名,所以对于数据应该放在哪些列中会感到困惑。我会在您的 INSERT 命令中指定列名.

您需要包括 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)

您需要像这样将 auto_increment 列设置为默认值:

String sql = "INSERT INTO tblPosts VALUES ( DEFAULT, '" + textFieldContent.getText() + "', '" + 

textFieldLink.getText() + "', '" + textFieldImage.getText() + "')";