【问题标题】:Cannot add FOREIGN KEY constraint using ALTER TABLE无法使用 ALTER TABLE 添加 FOREIGN KEY 约束
【发布时间】: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 并描述您要编码的关系。

标签: sql database oracle plsql


【解决方案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 的列名
猜你喜欢
  • 2014-03-17
  • 1970-01-01
  • 2012-04-28
  • 2014-01-19
  • 2022-01-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多