gpt4 book ai didi

mysql - 无法将行插入到具有外键字段的表中

转载 作者:行者123 更新时间:2023-11-29 00:42:51 26 4
gpt4 key购买 nike

我正在开发一个广泛使用数据库的 PHP 应用程序。我设置数据库的同事,设置表以使用外键。这是我正在使用的语句:

INSERT INTO patients (ethnicity, gender)
VALUES (1, 1);

INSERT INTO sessions (patient_id, submitted, age_in_years, video, annotated)
VALUES (LAST_INSERT_ID(), NOW(), 0, '', FALSE);

第一个语句有效。但是,第二个语句出现以下错误。

#1452 - 无法添加或更新子行:外键约束失败 (` /sessions`, CONSTRAINT `fk_sessions_1` FOREIGN KEY (`patient_id`) REFERENCES `patient` (`id`) ON在更新级联时删除级联)

我已确认 LAST_INSERT_ID() 返回预期值。

我该如何解决这个问题?

下面是我们如何设置sessions

CREATE TABLE IF NOT EXISTS `sessions` (
`id` int(11) NOT NULL auto_increment,
`patient_id` int(11) NOT NULL,
`severity` enum('Minimal Symptoms of Autism Spectrum Disorder','Mild-to-Moderate Symptoms of Autism Spectrum Disorder','Severe Symtoms of Autism Spectrum Disorder') default NULL,
`submitted` datetime default NULL,
`age_in_years` int(11) NOT NULL,
`video` text NOT NULL,
`annotated` tinyint(1) default '0',
PRIMARY KEY (`id`),
KEY `fk_sessions_1` (`patient_id`),
KEY `age_in_years` (`age_in_years`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

ALTER TABLE `sessions`
ADD CONSTRAINT `fk_sessions_1` FOREIGN KEY (`patient_id`) REFERENCES `patient` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

编辑:删除了不必要的细节。如果您觉得需要更多,请随时查看本文的第一个版本。

最佳答案

原来同事在添加外键的时候,外键引用的表名打错了。

ALTER TABLE `sessions`
ADD CONSTRAINT `fk_sessions_1` FOREIGN KEY (`patient_id`) REFERENCES `patient` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

应该是

ALTER TABLE `sessions`
ADD CONSTRAINT `fk_sessions_1` FOREIGN KEY (`patient_id`) REFERENCES `patients` (`id`) ON DELETE CASCADE;

关于mysql - 无法将行插入到具有外键字段的表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11513821/

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