我试图创建一个外键,但MYSQL只创建一个"键"

时间:2015-01-27 04:51:20

标签: mysql

所以我创建了这些表......

create table authors(
name varchar(55) primary key
)

create table books(
name varchar(55),
author varchar(55),
foreign key(author) references authors(name)
)

(我的外键语法来自这里http://dev.mysql.com/doc/refman/5.1/en/create-table-foreign-keys.html

然后我运行这个mysql ...     show create table books;

结果是:

CREATE TABLE `books` (
 `name` varchar(55) DEFAULT NULL,
 `author` varchar(55) DEFAULT NULL,
 KEY `author` (`author`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

它只是说KEY它没有说外键。

然后我转到INFORMATION_SCHEMAKEY_COLUMN_USAGEREFERENCED_TABLE_NAME以及REFERENCED_COLUMN_NAME值对books都是空的。author

我正在尝试查询我的数据库以显示表中的所有外键...但似乎我在创建外键时遇到了问题。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

MyISAM引擎不支持外键,仅在InnoDB

答案 1 :(得分:1)

ENGINE=MyISAM不支持FK,请使用innoDB

只需运行以下命令即可将表引擎更改为innoDB

ALTER TABLE books ENGINE = InnoDB;

之后你可以创建FK