簡體   English   中英

做alter table時外鍵沒有加入?

[英]Foreign Key not adding in while doing alter table?

這是我的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

現在,當我嘗試在通知表中添加id作為外鍵時,會出現1215錯誤。 我不知道我要去哪里錯了。

這是我的更改表代碼:

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

您還必須添加引擎,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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM