因为我的SQL很糟糕,所以我学习了一些SQL作为一个副项目。我有我创建的下表:
CREATE TABLE deliveries (
pid INTEGER,
FOREIGN KEY (pid) REFERENCES person_lives_at,
);
我想把它改成像这样的表:
CREATE TABLE deliveries (
pid INTEGER,
FOREIGN KEY (pid) REFERENCES employee,
);
我怎样才能实现这一目标?我使用的是Oracle SQL Developer
答案 0 :(得分:3)
由于您创建了一个没有名称的FK约束,因此oracle为SYS_xxxxxx等约束分配了一个系统生成的名称。要查找约束名称:
select constraint_name from all_Constraints
where table_name = 'DELIVERIES'
在我的测试用例中,它返回“SYS_C0016779”。然后我放弃约束:
alter table deliveries drop constraint SYS_C0016779
然后添加新约束:
ALTER TABLE deliveries
ADD CONSTRAINT PID_EMP_FK -- or whatever you want to call it.
FOREIGN KEY (pid)
REFERENCES employee(pid); -- or whatever the name of the column is