我有一個名爲mail的表,其中有一個名爲deletedBy的外鍵列,它通過pk引用users表。當我創建一個新的郵件我想設置此字段爲空郵件未刪除,但是當我做我得到一個外鍵約束失敗錯誤。與外部引用在mysql中的問題
我完全理解錯誤,但我該如何解決它?
表: -
CREATE TABLE `mail` (
`pk` int(10) unsigned NOT NULL AUTO_INCREMENT,
`from` int(11) unsigned NOT NULL,
`to` int(11) unsigned NOT NULL,
`subject` varchar(255) NOT NULL,
`message` text NOT NULL,
`dt` datetime NOT NULL,
`read` enum('0','1') NOT NULL DEFAULT '0',
`deletedby` int(11) unsigned DEFAULT '0',
PRIMARY KEY (`pk`),
KEY `from_mail__users_pk` (`from`),
KEY `to_mail__users_pk` (`to`),
KEY `deletedby_mail__users_pk` (`deletedby`),
CONSTRAINT `deletedby_mail__users_pk` FOREIGN KEY (`deletedby`) REFERENCES `user` (`pk`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `from_mail__users_pk` FOREIGN KEY (`from`) REFERENCES `user` (`pk`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `to_mail__users_pk` FOREIGN KEY (`to`) REFERENCES `user` (`pk`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_bin
錯誤信息: -
ERROR 1452: Cannot add or update a child row: a foreign key constraint fails (`ajfit`.`mail`, CONSTRAINT `deletedby_mail__users_pk` FOREIGN KEY (`deletedby`) REFERENCES `user` (`pk`) ON DELETE NO ACTION ON UPDATE NO ACTION)
SQL Statement:
INSERT INTO `ajfit`.`mail` (`from`, `to`, `subject`, `message`, `read`) VALUES (31, 30, 'test', 'test', '0')
感謝
安德魯
完美隊友謝謝你;) –