如何在FK引用它时将PRIMARY KEY更改为UNIQUE KEY

时间:2015-02-20 21:21:48

标签: mysql sql

我有一个包含以下两列的数据库:

`MainTable`
barcode (PK)
name

然后我有另一张FK的表:

`SubTable`
barcode (FK)
info

如何在确保条形码唯一性的同时,将自动递增主键添加到MainTable字段?基本上,如果没有出现FK错误,我将如何进行以下操作?

alter table maintable drop primary key;
alter table maintable add unique key (barcode);
ALTER TABLE `maintable` ADD `id` INT UNSIGNED  NOT NULL  AUTO_INCREMENT  PRIMARY KEY;

1 个答案:

答案 0 :(得分:0)

ALTER TABLE mainTable DROP CONSTRAINT Primary_key
ALTER TABLE maintable ADD CONSTRAINT constraint_name UNIQUE (barcode)
ALTER TABLE maintable ADD COLUMN Id INT PRIMARY KEY AUTO_INCREMENT

这会添加你的新主键,然后你需要在子表中添加一个新列作为FK引用新主键,并将旧Fk从子表中删除