java - 尝试执行 CREATE TABLE sql 命令时,Netbeans 出现错误代码 -1,SQL 状态 42Z93

标签 java sql netbeans derby javadb

这是我尝试执行的:

CREATE TABLE "order" (
    "o_id" INTEGER not null primary key,
    "c_id" INTEGER,
    PRIMARY KEY (o_id),
    FOREIGN KEY (c_id) REFERENCES customer(c_id)
);

当我执行上述 SQL 命令时出现此错误:

Error code -1, SQL state 42Z93: Constraints 'SQL120326130633321' and 'SQL120326130633320' have the same set of columns, which is not allowed.

在执行上述 SQL 命令之前,我执行了以下命令:

CREATE TABLE "customer" (
    "c_id" INTEGER not null primary key,
    "c_first" VARCHAR(30),
    "c_last" VARCHAR(30)
);

编辑(解决方案):

我想我已经修复了它。

首先,我必须删除 PRIMARY KEY(o_id) 因为它基本上重复了我在 SQL 命令 o_id INTEGER not null Primary key 第 2 行输入的内容,所以它提示我尝试为同一列创建主键两次。

其次,修复后出现另一个错误,告诉我找不到 CUSTOMER 表。也许问题是当 CREATE TABLE 尝试执行时,我在表名“customer”周围使用了逗号(“...”)。

我删除了“customer”表并重新创建了它,而没有在 SQL 命令中使用任何引号。

之后我为“订单”执行了“创建表”并且它起作用了。

奇怪的区别是,当我在 SQL 中使用客户表名称的引号时,起初,它的名称在 Netbeans 的数据库资源管理器中显示为全小写。但是,当我省略引号时,表名称变为全部大写 - 甚至列名称也变为大写。

最佳答案

您将添加主键约束两次。您只需要一次,在一个地方或另一个地方,具体取决于数据库供应商。

关于java - 尝试执行 CREATE TABLE sql 命令时,Netbeans 出现错误代码 -1,SQL 状态 42Z93,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9876533/

相关文章:

java - Netbeans - 将使用 GUI Builder 制作的 GUI 组件存储在数组中

c++ - FTDI 驱动程序库运行失败

java - WebDriver - 捕获的屏幕截图似乎具有红色或橙色色调

sql - 在使用 DELETE TRIGGER DELETE 之前将已删除的值插入表中

sql - 对于 MS SQL SERVER 中的每个?

SQL Server 批量导入 ROWTERMINATOR vbCrLf (\n) 不工作

java - 只是确定

java - Java 客户端应用程序中的 Ajax 调用

java - 字符大小是 8 位还是 16 位?

java - setenv.sh 导致 Tomcat7 以 "fail"启动