如何在mysql中更改外键引用?

时间:2018-03-31 02:39:29

标签: mysql

假设我有item(name, code, price, provider)provider(name, code, address)

我使用

制作item表格
CREATE TABLE item 
(
  name varchar(50) NOT NULL, code varchar(30) NOT NULL, price float NOT NULL, provider varchar(50) not null,
  PRIMARY KEY(code),
  foreign key(provider) references provider(name)
);  

但是,现在我想要foreign key(provider) references provider(code)

2 个答案:

答案 0 :(得分:0)

你可以这样做:

ALTER TABLE item
ADD FOREIGN KEY(code) REFERENCES provider(code);

注意:您必须确保provider.code和provider.name是唯一键。 MySql仅允许外键约束唯一或主键列。

答案 1 :(得分:0)

如果你需要删除以前的约束,你可以这样做:

ALTER TABLE item
drop foreign key item_ibfk_1

'item_ibfk_1'是与原始约束对应的fk符号。要为表找到此fk符号,可以运行以下命令:

SHOW CREATE table item;

然后你需要添加新约束

ALTER TABLE item
ADD FOREIGN KEY(provider) REFERENCES provider(code);