gpt4 book ai didi

mysql - 将外键添加到mySql中的表的问题

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

尝试执行此操作时出现错误 1452:

ALTER TABLE test.potovanja
ADD CONSTRAINT usr_ind
FOREIGN KEY (username)
REFERENCES test.users (username)

(错误代码:1452 无法添加或更新子行:外键约束失败(测试。,CONSTRAINT #sql-1110_2_ibfk_1 FOREIGN KEY(用户名)REFERENCES 用户(用户名)))。引用键和被引用键是同一类型(VARCHAR)。

我的 SHOW CREATE TABLE 输出:

CREATE TABLE `users` (
`username` varchar(45) NOT NULL,
`password` varchar(45) DEFAULT NULL,
`ime` varchar(45) DEFAULT NULL,
`priimek` varchar(45) DEFAULT NULL,
`nacinp` varchar(45) DEFAULT NULL,
`email` varchar(45) DEFAULT NULL,
PRIMARY KEY (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

CREATE TABLE `potovanja` (
`idpotovanja` int(11) NOT NULL AUTO_INCREMENT,
`od` varchar(45) DEFAULT NULL,
`do` varchar(45) DEFAULT NULL,
`datumvstopa` varchar(45) DEFAULT NULL,
`username` varchar(45) DEFAULT NULL,
`cena` varchar(45) DEFAULT NULL,
`datumizstopa` varchar(45) DEFAULT NULL,
PRIMARY KEY (`idpotovanja`),
KEY `usr_ind` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8

我真的不知道该怎么办。

最佳答案

检查用户表中是否存在 potovanja 中的所有用户名。您可能在 potovanja 中有一些用户不再存在

像这样的东西就可以了......

select * from potovanja p where not exists 
(select * from users where users.username = p.username)

关于mysql - 将外键添加到mySql中的表的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3361185/

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