我有一个没有外键的oracle db,所有表关系都由软件处理。例如,表Customer
列Customer.customercode
,Customer.Name
其中customercode
是主键,表Order
列Order.ordercode
(PK), Order.customercode
其中customercode
没有外键约束。到目前为止,应用程序处理所有事务并处理所有表关系,以便数据一致。我需要将其更改为适当的关系数据库实现,因此我需要将Order.customercode
修改为表Customer
中的FK。有没有丢失我的数据的任何sqlplus语句?
答案 0 :(得分:2)
在Oracle中,创建外键永远不会丢失任何数据,但如果数据与新约束不对应,它将失败。假设您的数据正常,您可以使用alter table
语句:
ALTER TABLE order
ADD CONSTRAINT order_customer_fk FOREIGN KEY (customercode)
REFERENCES customer(customercode)