所以我创建了这些表......
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_SCHEMA
。KEY_COLUMN_USAGE
和REFERENCED_TABLE_NAME
以及REFERENCED_COLUMN_NAME
值对books
都是空的。author
。
我正在尝试查询我的数据库以显示表中的所有外键...但似乎我在创建外键时遇到了问题。有人可以帮忙吗?
答案 0 :(得分:1)
MyISAM
引擎不支持外键,仅在InnoDB
。
答案 1 :(得分:1)
ENGINE=MyISAM
不支持FK
,请使用innoDB
只需运行以下命令即可将表引擎更改为innoDB
ALTER TABLE books ENGINE = InnoDB;
之后你可以创建FK