我想在MySQL上使用SQL腳本創建一個表,並且MySQL數據庫不斷給我提供錯誤150.我已經在Navicat和MySQL Workbench中嘗試了以下代碼,並且都給出了150錯誤。錯誤(150)由SQL腳本生成?
看來這是一個外鍵問題,但我實際上看不到我的代碼存在什麼問題,並且想知道是否有更多的經驗豐富的DB用戶會對這個問題有所暗示?
SET FOREIGN_KEY_CHECKS=0;
CREATE TABLE `network_invites` (
`invite_ID` int(11) NOT NULL AUTO_INCREMENT,
`invite_From` int(11) NOT NULL,
`invite_Network` int(11) NOT NULL,
`invite_NetCreator` int(11) NOT NULL,
`invite_Message` varchar(256) NOT NULL,
`invite_Date` date DEFAULT NULL,
PRIMARY KEY (`invite_ID`),
KEY `invite_From` (`invite_From`),
KEY `invite_Network` (`invite_Network`),
KEY `invite_NetCreator` (`invite_NetCreator`),
CONSTRAINT `network_invites_ibfk_1` FOREIGN KEY (`invite_From`) REFERENCES `users` (`user_ID`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `network_invites_ibfk_2` FOREIGN KEY (`invite_Network`) REFERENCES `networks` (`network_ID`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `network_invites_ibfk_3` FOREIGN KEY (`invite_NetCreator`) REFERENCES `networks` (`network_Creator`) ON DELETE CASCADE ON UPDATE CASCADE
)ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=latin1;
我不能看到FK問題是什麼,這些字段確實存在於數據庫中,它們具有相同的數據類型。
感謝您的任何幫助。
它們都是int(11)嗎? – raina77ow
3個FK必須與相關表中的完全相同,即'int(11)NOT NULL'。如果這些定義在相關表中有所不同,您將得到150 err。 –
邁克爾測試我創建了具有完全相同名稱/類型的虛擬表,然後嘗試創建表network_invites,但仍然收到150錯誤 – Satya