将现有列修改为外键

时间:2017-08-23 14:56:30

标签: database oracle oracle11g foreign-keys ddl

我有一个没有外键的oracle db,所有表关系都由软件处理。例如,表CustomerCustomer.customercodeCustomer.Name其中customercode是主键,表OrderOrder.ordercode(PK), Order.customercode其中customercode没有外键约束。到目前为止,应用程序处理所有事务并处理所有表关系,以便数据一致。我需要将其更改为适当的关系数据库实现,因此我需要将Order.customercode修改为表Customer中的FK。有没有丢失我的数据的任何sqlplus语句?

1 个答案:

答案 0 :(得分:2)

在Oracle中,创建外键永远不会丢失任何数据,但如果数据与新约束不对应,它将失败。假设您的数据正常,您可以使用alter table语句:

ALTER TABLE order
ADD CONSTRAINT order_customer_fk FOREIGN KEY (customercode)
REFERENCES customer(customercode)