我使用下面的create table在mysql中创建一个posts表:
mysql> create table posts(
-> post_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> author_id INT NOT NULL,
-> title varchar(50),
-> post TEXT,
-> data DATE,
-> FOREIGN KEY (author_id)
-> REFERENCES authors(author_id)
-> ON DELETE RESTRICT)ENGINE=INNODB;
但我总是得到这个错误: ERROR 1005(HY000):无法创建表格myFirstBlog.posts' (错误:150)
我的作者表的描述如下:
mysql> desc authors;
+-----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+----------------+
| author_id | int(11) | NO | PRI | NULL | auto_increment |
| user_name | varchar(16) | YES | | NULL | |
| password | varchar(40) | YES | | NULL | |
+-----------+-------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
有人可以帮我解决错误的位置。
提前致谢。
答案 0 :(得分:0)
async Task
请使两个表的列的数据类型相同。 作者(author_id)和帖子(author_id)
或强>
首先创建authors表,然后执行上面的查询。
我曾尝试过以下查询,它为我工作。
create table posts(
post_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
author_id INT NOT NULL,
title varchar(50),
post TEXT,
data DATE,
FOREIGN KEY (author_id)
REFERENCES authors(author_id)
ON DELETE RESTRICT
)ENGINE=INNODB;
希望这会有所帮助。