【问题标题】:Derby how to add NOT NULL constraint on an existing columnDerby 如何在现有列上添加 NOT NULL 约束
【发布时间】:2020-12-13 11:52:06
【问题描述】:

我一直在寻找解决方案,所有我看到的都不起作用,目前我正在尝试:ALTER TABLE INVOICE_RECORDS ALTER COLUMN SERIAL_NUMBER VARCHAR(10) NOT NULL 但它不起作用。

错误信息是:java.sql.SQLSyntaxErrorException: Syntax error: Encountered "VARCHAR" at line 1, column 53.

我在 JavaFX 应用程序中运行它。

我只想将 NOT NULL 约束添加到 SERIAL_NUMBER 列。

【问题讨论】:

标签: java sql derby ddl


【解决方案1】:

根据我尝试过的 Bryan Pendleton 的评论

ALTER TABLE INVOICE_RECORDS ALTER COLUMN SERIAL_NUMBER NOT NULL

...它对我有用。删除 VARCHAR(10) 就成功了。

谢谢布莱恩!

【讨论】:

    【解决方案2】:

    TutorialsPoint 说这样做:

    ALTER TABLE INVOICE_RECORDS MODIFY SERIAL_NUMBER VARCHAR(10) NOT NULL
    

    【讨论】:

    • 我试过了,还是不行,java.sql.SQLSyntaxErrorException: Syntax error: Encountered "MODIFY" at line 1, column 27.
    • 我不知道该教程应该用于哪个 DBMS,但是对于包括 Postgres、Oracle、DB2、Firebird 和 Apache Derby 在内的几个 DBMS 来说,它是错误的
    【解决方案3】:

    试试这个。

    ALTER TABLE INVOICE_RECORDS ADD CONSTRAINT INVOICE_SERIAL_NUM NOT NULL(SERIAL_NUMBER);
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-02
      • 1970-01-01
      • 2017-07-06
      • 2017-09-07
      • 2023-02-03
      • 2021-03-04
      • 2014-11-15
      • 2021-04-21
      相关资源
      最近更新 更多