gpt4 book ai didi

mysql - 将数据从一个 MySQL 表传输到另一个带参数的表

转载 作者:行者123 更新时间:2023-11-29 06:15:48 24 4
gpt4 key购买 nike

我有一个名为 SUBJECT 的表带字段SUBJ_IDSUBJ_NAME 。另一个表名为 COURSES与字段 COURSE_NAME , SUBJ_NAME ,和SUBJ_ID 。我的目标是自动更新SUBJ_IDCOURSESUBJ_ID来自SUBJECT表当SUBJ_NAME输入COURSE表。

例如,SUBJECT表中有以下数据:

+-----------+-------------+
| course_ID | course_name |
+-----------+-------------+
| 1 | math |
| 2 | physics |
+-----------+-------------+

如果我输入COURSES表:

INSERT INTO `courses` VALUES('Algebra 101', 'Math');

如何让它自动更新SUBJ_ID等于 1?

最佳答案

将表架构更改为如下所示:

类(class)表

+-----------+---------+------------+
| course_id | subbj_id|course_name |
+-----------+---------+------------+
| 1 | 1 | math |
|-----------+---------+----------- +

主题表

+-----------+-----------+
| subj_id | subj_name |
+-----------+---------+-+
| 1 | math |
|-----------+-----------+

删除courses表中的subj_name(因为它是多余的,并且可能会导致数据损坏,就像您的情况一样)。这将使您的数据标准化,并且您将能够通过联接获取信息。

如果您有一个包含 subj_id 和 subj_name 的主题表,则 subj_id 应该是您的主键(唯一标识符)。您的第二个表,类(class),应该有 course_id、course_name 和 subj_id。 course_id 应该是您的主键(唯一标识符)。然后,您将在主题表中的 subj_id 到类(class)表中的 subj_id 之间拥有一对多外键。

设置完成后,您将使用以下查询:

select c.course_name, s.subj_name from courses AS c inner join subject AS s on c.subj_id = s.subj_id;

这将拉出它所属的类(class)和主题。

当您需要更新主题名称时,您现在只需在一处更改它,即 subject.subj_name,并且它将由于关系而传播。

如果这一切都太多了,请阅读规范化数据和正确设置关系的内容。

祝你好运!

关于mysql - 将数据从一个 MySQL 表传输到另一个带参数的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6590903/

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