gpt4 book ai didi

MYSQL如何在基于父表插入数据的同时使用外键更新子表值

转载 作者:行者123 更新时间:2023-11-29 10:44:07 25 4
gpt4 key购买 nike

我有 2 个表,一个父表和一个子表。子表有父表的外键。我已成功创建外键。但是,当我只插入“id_parent”时,如何根据父表自动更新字段“nama”?我只尝试过:

INSERT INTO child (id_parent) values (1)

但字段“name”值仍然为 NULL

这是我的表格:

CREATE TABLE `child` (
`id` int(6) NOT NULL AUTO_INCREMENT,
`id_parent` int(6) DEFAULT NULL,
`nama` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `aa` (`nama`,`id_parent`),
CONSTRAINT `aa` FOREIGN KEY (`nama`, `id_parent`) REFERENCES `parent` (`nama`, `id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=armscii8;

-- ----------------------------
-- Table structure for parent
-- ----------------------------
CREATE TABLE `parent` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`nama` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `nama` (`nama`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=armscii8;

父表有这样的数据

INSERT INTO `parent` VALUES ('4', 'asa');
INSERT INTO `parent` VALUES ('1', 'batman');
INSERT INTO `parent` VALUES ('3', 'goku');
INSERT INTO `parent` VALUES ('2', 'robin');
INSERT INTO `parent` VALUES ('5', 'usu');

最佳答案

检查这一行:

KEY `aa` (`nama`,`id_parent`),
CONSTRAINT `aa` FOREIGN KEY (`nama`, `id_parent`) REFERENCES `parent` (`nama`, `id`)

在这里,您在两列上创建了一个外键关系,即parent(namaid)。在这种情况下,您只能在子表中插入父表中已有的那些组合值。请记住,这里的外键是通过组合两列而不是单个列来实现的。

关于MYSQL如何在基于父表插入数据的同时使用外键更新子表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44943671/

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