gpt4 book ai didi

php - 在 MySQL 中创建约束时出现错误 #sql-890_730

转载 作者:行者123 更新时间:2023-11-30 22:03:57 26 4
gpt4 key购买 nike

这是我的t_complaint

    CREATE TABLE `t_complaint` (
`idcomplaint` int(11) NOT NULL,
`tglterima` date DEFAULT NULL,
`dept` varchar(5) DEFAULT NULL,
`pengirim` varchar(255) DEFAULT NULL,
`kontak` varchar(255) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`telp` varchar(255) DEFAULT NULL,
`jenis` varchar(45) DEFAULT NULL,
`uraian` text,
`uniqueid` varchar(9) DEFAULT NULL,
`responder` varchar(245) DEFAULT NULL,
`tgljawab` date DEFAULT NULL,
`jawaban` text,
`status` varchar(45) DEFAULT NULL,
`tglclose` date DEFAULT NULL,
`createddate` datetime DEFAULT NULL,
`createdby` varchar(45) DEFAULT NULL,
`modifieddate` datetime DEFAULT NULL,
`modifiedby` varchar(45) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

这是t_complaint_detail:

    CREATE TABLE `t_complaint_detail` (
`no` int(11) NOT NULL,
`uniqueid` varchar(9) DEFAULT NULL,
`uploader` varchar(100) DEFAULT NULL,
`st_uploader` int(11) DEFAULT NULL,
`file_upload` text,
`original_name` text,
`status` int(11) DEFAULT '1'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  • t_complaint.idcomplaint 是一个自增属性的主键
  • t_complaint_detail.no 是一个自增属性的主键
  • 我想通过uniqueid连接这些表
  • 我试过 ALTER TABLE t_complaint_detail ADD CONSTRAINT fk_unique FOREIGN KEY ('uniqueid') REFERENCES t_complaint('uniqueid')
  • 上面的查询给出了错误。错误是#1005 - Can't create tablebsm.#sql-890_730(errno: 150 "Foreign key constraint is incorrectly formed") (详情... )
  • 错误中的
  • bsm是我的数据库(我的数据库是bsm)

最佳答案

外键必须是父表的主键。问题是,为什么要在两个表中添加冗余的“uniqueId”?您可以像这样简单地定义一个外键约束:

t_complaint_detail ADD CONSTRAINT fk_unique FOREIGN KEY ('idcomplaint') REFERENCES t_complaint('idcomplaint').

它应该可以工作。

关于php - 在 MySQL 中创建约束时出现错误 #sql-890_730,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42385178/

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