Mysql 为什么外键没有';不更新?
我在列Mysql 为什么外键没有';不更新?,mysql,sql,foreign-keys,Mysql,Sql,Foreign Keys,我在列TEMP1.aa(主键在TEMP1中)中插入数据,但它不会导入到TEMP2.cc列(外键在TEMP2中) 为什么? 我想如果在主键中插入数据,它会自动插入外键!如果这是真的,那么如果我们插入主键,外键必须更新 外键不会更新子引用,它只确保存储在列中的值已存在于父表中 但是MySQL支持级联更新,方法是在TEMP1表中的外键约束中添加ON update CASCADE。否则,您需要考虑使用触发器进行更详细的规则/要求。 参考: 外键不会更新子引用,它只确保存储在列中的值已存在于父表中
TEMP1.aa
(主键在TEMP1中)中插入数据,但它不会导入到TEMP2.cc
列(外键在TEMP2中)
为什么?
我想如果在主键中插入数据,它会自动插入外键!如果这是真的,那么如果我们插入主键,外键必须更新 外键不会更新子引用,它只确保存储在列中的值已存在于父表中 但是MySQL支持级联更新,方法是在TEMP1表中的外键约束中添加
ON update CASCADE
。否则,您需要考虑使用触发器进行更详细的规则/要求。
参考:
ON update CASCADE
。否则,您需要考虑使用触发器进行更详细的规则/要求。
参考:
不,外键不是那样工作的 外键用于通过键将两个表链接在一起。在一个表中,您有
主键
和与该实体相关的所有属性
在另一个表中,您有一个外键
,它告诉数据库“嘿,您,用户,您只能在这里插入一个值,如果它也作为主键
存在于我的参考表中”
用户仍然可以选择是否要在外部表中插入一行
如果您需要外部表在主表中始终有一行引用其对应的行,那么您可以将该表转换为其他列,因为它们是同一实体的属性。这方面也有例外,但详细说明只会增加您的困惑。不,外键不是这样工作的 外键用于通过键将两个表链接在一起。在一个表中,您有
主键
和与该实体相关的所有属性
在另一个表中,您有一个外键
,它告诉数据库“嘿,您,用户,您只能在这里插入一个值,如果它也作为主键
存在于我的参考表中”
用户仍然可以选择是否要在外部表中插入一行
如果您需要外部表在主表中始终有一行引用其对应的行,那么您可以将该表转换为其他列,因为它们是同一实体的属性。这方面也有例外,但详细讨论只会增加您的困惑。考虑一下这些表格
Fruits
ID Name
1 Apple
2 Orange
3 Grapes
Sales
ID Fruit Amount
1 1 2.45
2 3 1.23
3 1 2.23
4 2 6.22
销售(水果)到水果(ID)
上的外键确保销售中的每个水果值必须与水果的ID匹配。不,关于你的问题
我在列aa(temp1中的主键)中插入数据,但它不会导入TMP2.cc列(temp2中的外键)
所以我们在水果中插入一条记录(ID:4,名称:Pear)。您想将其导入销售吗?怎么做
阅读一些关于外键的基础知识
Fruits
ID Name
1 Apple
2 Orange
3 Grapes
Sales
ID Fruit Amount
1 1 2.45
2 3 1.23
3 1 2.23
4 2 6.22
销售(水果)到水果(ID)
上的外键确保销售中的每个水果值必须与水果的ID匹配。不,关于你的问题
我在列aa(temp1中的主键)中插入数据,但它不会导入TMP2.cc列(temp2中的外键)
所以我们在水果中插入一条记录(ID:4,名称:Pear)。您想将其导入销售吗?怎么做
阅读一些关于外键的基础知识