【问题标题】:How to auto increment database column in Java derby?如何在 Java derby 中自动增加数据库列?
【发布时间】:2017-07-07 06:02:47
【问题描述】:

这是我目前尝试创建表的 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

同样的反应。有什么建议吗?

【问题讨论】:

  • 我会在您的 INSERT 命令中指定列名。另外,我会发布实际错误。
  • @SteveSmith 谢谢史蒂夫。
  • 这是否意味着它有效?
  • @SteveSmith 是的。 :)

标签: java sql derby auto-increment


【解决方案1】:

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

【讨论】:

  • 显然我需要等待 6 分钟才能将其标记为如此。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    您需要将 THAT auto_increment 列设置为 DEFAULT,如下所示:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-06
      • 1970-01-01
      • 2013-05-21
      • 1970-01-01
      • 2015-03-14
      • 2021-10-20
      • 2013-12-01
      相关资源
      最近更新 更多