如何在MySQL表中添加外键列?

4

我在MySQL中有一个名为payment_request的表,

DESCRIBE payment_request提供以下输出结果,

enter image description here

以下是oderbook表格,

enter image description here

我想在orderbook表格中添加payment_request表格中的id作为外键,并将名称设置为payment_request_id,位置处于id列(第二列)之后。

应该运行什么SQL语句来实现?


1
可能是向现有表添加外键的重复问题。 - Sam M
让我们保持提到的,我们需要匹配外键声明的变量类型。 - Arefe
2个回答

6

首先您需要在表orderbook中添加新列。

ALTER TABLE orderbook
ADD payment_request_id INT(10) unsigned AFTER ID;

然后添加一个约束条件来定义外键。
ALTER TABLE orderbook
ADD CONSTRAINT fk_orderbook FOREIGN KEY (payment_request_id) 
REFERENCES payment_request (id);

参考:


最后三个添加外键的命令无法执行,我收到了错误提示:错误代码:1215。无法添加外键约束 - Arefe
@Arefe,因为数据类型不匹配,请查看我的更新答案。 - John Woo

2
您可以在创建表格时完成此操作:
CREATE TABLE Orders (
    OrderID int NOT NULL,
    OrderNumber int NOT NULL,
    PersonID int,
    PRIMARY KEY (OrderID),
    FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
); 

或通过修改表格:

ALTER TABLE Orders
ADD FOREIGN KEY (PersonID) REFERENCES Persons(PersonID); 

还可以参考这个教程


非常感谢您的回答。 - Arefe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接