gpt4 book ai didi

mysql - 更改表时外键未添加?

转载 作者:行者123 更新时间:2023-11-29 10:45:36 26 4
gpt4 key购买 nike

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

您的表通知也没有列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

关于mysql - 更改表时外键未添加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44631657/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com