如何让MySQL表互相更新?

时间:2015-09-20 22:12:42

标签: mysql

我是编程新手所以请原谅我的无知。我正在尝试让MySQL表互相更新。例如:当我将数据插入一个表中的主键列时,它不会出现在另一个表中的外键列中。

有人对此问题有任何建议吗?

谢谢!

附加信息:我使用phpMyAdmin创建表格,然后添加SQL代码以创建外键。代码示例如下。

ALTER TABLE CourseSchedule
ADD FOREIGN KEY (CourseId)
REFERENCES Course(CourseId)

1 个答案:

答案 0 :(得分:0)

我相信我们所拥有的是对documentation的轻微误解。

  

对于支持外键的存储引擎,MySQL拒绝任何INSERT   或尝试在a中创建外键值的UPDATE操作   子表如果没有匹配的候选键值   父表。

     

当UPDATE或DELETE操作影响父级中的键值时   子表中具有匹配行的表,结果取决于   使用ON UPDATE和ON DELETE指定的引用操作   FOREIGN KEY子句的子条款。 MySQL支持五种选择   关于要采取的行动,请在此处列出

您的外键实际上做的是确保您不能在CourseSchedule表中插入与Courses表中的条目不对应的值。

举个例子,假设你要在每个星期三9点尝试进入一个python课程,但是你没有'实际上在Courses表中有一个python条目。然后mysql将拒绝创建该条目。 Mysql无法做到相反。它不知道你的python课程的细节。因此,它无法为您自动在Courses表中创建条目。同样,如果oyu在课程表中创建了一个entr。 Mysql无法自动为您创建CourseSchedule,因为它不知道应该在什么时间安排它。