Mysql 执行alter table时未添加外键?

Mysql 执行alter table时未添加外键?,mysql,sql,Mysql,Sql,这是我的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' v

这是我的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
)

现在,当我尝试在notifications表中添加id作为外键时,它给出了1215错误。我不知道我错在哪里

这是我的alter table代码:

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

您还必须将引擎、charste和collate信息添加到第二个表中:

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 
另外,您的表
通知
没有列
id
。您必须先添加此项,然后将其命名为user\u 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