MySQL在现有表中创建关系

发布于 2025-02-01 03:21:22 字数 291 浏览 5 评论 0原文

我已经有一张大桌子,上面有很多列。现在,我尝试将表格在单独的较小表中拆分并创建一些关系。 例如:在我的情况下,部门名称直接写在员工表中。现在,我想将它们分开并创建关系(sub到d#),

如何将它们分开?并从员工表中删除部门名称?

I have already a big table with many columns. Now I try to split the table in separate smaller tables and create some relationships.
As an example: In my case the department name is directly written in the employee table. Now I want to split them and create the relationship (Sub to D#)

How can I separate them? and delete the department name out of the Employee table?

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

忘你却要生生世世 2025-02-08 03:21:22

一个例子:

 创建表sub(id int auto_increment primary键)
选择不同的val2
来自SRC;
 
  Alter Table SRC 
    添加列sub_id int,
    添加外键(sub_id)引用sub(id);
 
 更新SRC
使用(val2)加入sub
    设置src.sub_id = sub.id;
 
  Alter Table SRC
    Drop列Val2;
 

db<> gt;一些解释)。

An example:

CREATE TABLE sub (id INT AUTO_INCREMENT PRIMARY KEY)
SELECT DISTINCT val2
FROM src;
ALTER TABLE src 
    ADD COLUMN sub_id INT,
    ADD FOREIGN KEY (sub_id) REFERENCES sub (id);
UPDATE src
JOIN sub USING (val2)
    SET src.sub_id = sub.id;
ALTER TABLE src
    DROP COLUMN val2;

db<>fiddle here (with some explanations).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文