我正在处理 SQL,但在创建表时遇到问题! 这是我的代码:
CREATE TABLE Voucher_Types
(
ID Number(3, 0),
Abbreviation VarChar(2),
Voucher_Type VarChar(100),
EntryBy VarChar(25),
EntryDate Date,
CONSTRAINT ID_PK Primary Key(ID)
);
我收到以下错误,
ORA-02264: 名称已被现有约束使用
我使用的是Oracle10g
我浏览了一下并找到了一些主题,但它们没有帮助我,有人可以帮助我解决这个问题吗!提前致谢..!
最佳答案
您还有另一个表,该表已经具有名称为 ID_PK
的约束。
如果你想知道它是哪个表,你可以尝试
select owner, table_name from dba_constraints where constraint_name = 'ID_PK';
很可能,您复制了 create table
语句,但没有更改主键的约束名称。
通常认为将表名称包含在约束名称中是一种良好的做法。原因之一就是为了防止这种“错误”。
因此,根据您的情况,您可能会使用
CREATE TABLE Voucher_Types
(
...
CONSTRAINT Voucher_Types_PK Primary Key(ID)
);
更新为什么同一个约束名称不能使用两次? (根据评论中的问题):这正是因为它是标识约束的名称。如果您在运行的系统中违反了约束,您想知道它是哪个约束,因此您需要一个名称。但如果该名称可以引用多个约束,则该名称没有特殊用途。
关于sql - ORA-02264 : name already used by an existing constraint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22089212/