这是我尝试执行的:
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/