gpt4 book ai didi

mysql - 在 MySql 中使用自然键改造表中的代理键?

转载 作者:行者123 更新时间:2023-11-29 05:46:54 25 4
gpt4 key购买 nike

假设一个表使用自然键并且有许多现有行。使用 MySql 改造代理键列并用唯一值填充它的最简单方法是什么?

即变换

table employees
(
social_security_no varchar(20),
...
constraint emp_pk primary key (social_security_no)
);

table employees
(
id int,
social_security_no varchar(20),
...
constraint emp_pk primary key (id)
);

并用有效的 id:s 填充新的 id 列。

谢谢/埃里克

最佳答案

简单:

ALTER TABLE employees DROP PRIMARY KEY;
ALTER TABLE employees ADD (id INT AUTO_INCREMENT PRIMARY KEY);

您可能(可能)想要这样做:

CREATE INDEX employees_ssn ON employees (social_security_no);

对于任何引用表:

ALTER TABLE blah ADD (employees_fk INT);
UPDATE blah b SET employees_fk = (SELECT id FROM employees WHERE social_security_no = b.ssn);
ALTER TABLE blah DROP (ssn);

关于mysql - 在 MySql 中使用自然键改造表中的代理键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/453897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com