SQL"更改表"对于外键

时间:2018-02-11 22:10:32

标签: sql oracle ddl

因为我的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

1 个答案:

答案 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