繁体   English   中英

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

[英]How to auto increment database column in Java derby?

这是我迄今为止尝试创建表的 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 在数据库上创建表,如此处所述

在 derby 中更改自动递增 1 的表列

不过同样的回应。 有什么建议?

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

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

您需要像这样将 THAT auto_increment 列设置为 DEFAULT:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM