2017-06-19 32 views
0

這裏是我的users.sql文件:在修改表時沒有添加外鍵?

CREATE TABLE users (
    'id' bigint(20) NOT NULL auto_increment, 
    'md5_id' varchar(200) collate latin1_general_ci NOT NULL default '', 
    'user_name' varchar(200) collate latin1_general_ci NOT NULL default '', 
    'user_email' varchar(220) collate latin1_general_ci NOT NULL default '', 
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci 
     AUTO_INCREMENT=55 ; 

這裏id是主鍵。

現在,這是第二個表notifications.sql:

CREATE TABLE 'notifications' (
'notificationid' int(11) NOT NULL, 
'creation_date_time' varchar(30) NOT NULL, 
'view_date_time' varchar(30) NOT NULL, 
    'user_id bigint(big) NOT NULL, 
    'notification_text' varchar(255) NOT NULL, 
    'is_viewed' varchar(3) NOT NULL 

現在,當我嘗試在通知表作爲外鍵它提供了1215錯誤添加ID。我不知道我要去哪裏錯。

這是我的ALTER TABLE代碼:

ALTER TABLE 'notifications' 
ADD FOREIGN KEY (id) REFERENCES users(id) 
ON DELETE CASCADE ON UPDATE CASCADE 

回答

1

您必須添加引擎,charste和整理信息,第二個表太:

CREATE TABLE 'notifications' (
'notificationid' int(11) NOT NULL, 
'creation_date_time' varchar(30) NOT NULL, 
'view_date_time' varchar(30) NOT NULL, 
    'user_id bigint(big) NOT NULL, 
    'notification_text' varchar(255) NOT NULL, 
    'is_viewed' varchar(3) NOT NULL 

) 
ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci 

而且你的表notifications醫管局沒有列id 。您必須首先添加並命名爲user_id:

ALTER TABLE 'notifications' 
ADD Column user_id int(11); 


ALTER TABLE 'notifications' 
ADD FOREIGN KEY (user_id) REFERENCES users(id) 
ON DELETE CASCADE ON UPDATE CASCADE 
+0

其完成感謝您的幫助。 –