gpt4 book ai didi

mysql - 使用 PHP 在 mySQL 数据库中插入记录时遇到问题

转载 作者:行者123 更新时间:2023-11-29 12:13:51 25 4
gpt4 key购买 nike

我有两个尝试链接的表,一个用户表和一个注册表:

CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL auto_increment,
`first_name` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
`password` varchar(32) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=19 ;

CREATE TABLE IF NOT EXISTS `registration` (
`userid` int(11) NOT NULL,
`sex` varchar(10) NOT NULL,
`dob` date NOT NULL,
`location` varchar(30) NOT NULL,
`edu_level` varchar(32) NOT NULL,
`work` varchar(30) NOT NULL,
`rel_status` varchar(10) NOT NULL,
KEY `userid` (`userid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

我使用 phpadmin 中的设计选项卡在它们之间创建了一个链接,但是当我将记录插入注册表时,它一直显示:

Cannot add or update a child row: a foreign key constraint fails

(`letzfuze/registration`, CONSTRAINT `registration_ibfk_1` 
FOREIGN KEY (`userid`) REFERENCES `users` (`id`))

请问谁可以帮忙?

最佳答案

registration 表中的 userid 列提供的值必须已出现在 users 行的 id 列中.

外键约束本质上是说:“如果未找到 userid 列的值,则不允许将行添加到 registration 表中。 users 表中 id 列的值。”

您收到的错误消息看起来像是我们在尝试违反约束时所期望的行为。

这里有一个建议:

首先将新行插入到 users 中,从该行获取 id 值,然后将该值用于 userid注册

如果您做不到这一点,您可能需要考虑对 userid 列使用 NULL 值,或者放弃外键约束并完全重新考虑您的设计。

关于mysql - 使用 PHP 在 mySQL 数据库中插入记录时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30199066/

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