无法使用 ALTER TABLE 添加 FOREIGN KEY 约束
Posted
技术标签:
【中文标题】无法使用 ALTER TABLE 添加 FOREIGN KEY 约束【英文标题】:Cannot add FOREIGN KEY constraint using ALTER TABLE 【发布时间】:2018-03-18 14:42:12 【问题描述】:大家,我对 SQL 比较陌生,我目前正在使用 Oracle Live SQL 测试我的数据库表。我有一个名为 Customer 的表和一个名为 Contact 的表。在 Contact 表中,我试图将 Customer_ID 列的 FOREIGN KEY 约束添加到我的 Contact 表中,但不断收到 ORA-00904: "CUSTOMER_ID": invalid identifier, error using the code below:
ALTER TABLE Contact ADD FOREIGN KEY (Customer_ID) REFERENCES Customer(Customer_ID)
任何帮助将不胜感激。
【问题讨论】:
您的联系人表中有 Customer_ID 字段吗? 不,我的客户表中有一个 Customer_ID 列 在 Contact id 中你有哪个列名? .add 你的架构 .. + 请显示您的表格的 ddl 并描述您要编码的关系。 【参考方案1】:大概您在contact
中没有Customer_Id
列。所以试试这个:
ALTER TABLE Contact ADD Customer_Id number; -- the type is a guess
ALTER TABLE Contact ADD FOREIGN KEY (Customer_ID) REFERENCES Customer(Customer_ID);
【讨论】:
哇我简直不敢相信我什至忘记将列 Customer_ID 添加到联系人表中。非常感谢,这解决了这个问题。【参考方案2】:因此,根据您问题的 cmets,您的联系人表中没有 Customer_ID 列。外键的定义是你在两个表中都有你想要引用的列。
ALTER TABLE Contact ADD Customer_ID int;
ALTER TABLE Contact ADD FOREIGN KEY (Customer_ID) REFERENCES Customer(Customer_ID);
【讨论】:
感谢您的回复。你说得对,我忘了在 Contact 表中添加一个名为 Customer_ID 的列名以上是关于无法使用 ALTER TABLE 添加 FOREIGN KEY 约束的主要内容,如果未能解决你的问题,请参考以下文章
sql [ALTER TABLE]要(1)添加,删除或修改列,或(2)在现有表中添加和删除各种约束。 #Syntax #Alter_table
如何用oracle里面的alter table语句去添加一个列约束