Err] 1005 - Can't create table 'xx' (errno: 150)

问题补充:

/*用户表user的创建*/
CREATE TABLE user(
u_no INT NOT NULL, 
u_pwd VARCHAR(16) NOT NULL,
u_name VARCHAR(8),
u_email VARCHAR(18),
u_state TINYTEXT,
h_id INT,
PRIMARY KEY(u_no),
FOREIGN KEY(h_id) REFERENCES head(h_id)
);
/*好友列表friend的创建*/
CREATE TABLE friend
(
f_id INT NOT NULL,
u_noz INT NOT NULL,
u_noy INT NOT NULL,
f_date TIMESTAMP,
PRIMARY KEY(f_id),
FOREIGN KEY(u_noz) REFERENCES user(u_no),
FOREIGN KEY(u_noy) REFERENCES user(u_no)
);

CREATE TABLE diary(/*日记diary表的创建*/
r_id INT NOT NULL,
r_title VARCHAR(18) NOT NULL,
r_content TEXT NOT NULL,
r_date TIMESTAMP,
u_no INT NOT NULL,
PRIMARY KEY(r_id),
FOREIGN KEY(u_no) REFERENCES user(u_no)
);

CREATE TABLE album(/*相册album表的创建*/
x_id INT NOT NULL,
x_name VARCHAR(18) NOT NULL,
u_no INT NOT NULL,
x_access INT DEFAULT 0, -- 0:公开,1:好友,2:仅自己可见
x_date TIMESTAMP,
PRIMARY KEY(x_id),
FOREIGN KEY(u_no) REFERENCES user(u_no)
);

user的 FOREIGN KEY不可能连到friend中,因为你先创建user,那么他执行到foreign key的时候,他找不到friend,而你的friend是在user建立之后才创建的。
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值