I';我试图创建一个外键,但MYSQL只创建了一个;“关键”;

I';我试图创建一个外键,但MYSQL只创建了一个;“关键”;,mysql,Mysql,所以我创建了这些表 create table authors( name varchar(55) primary key ) create table books( name varchar(55), author varchar(55), foreign key(author) references authors(name) ) (我的外键语法取自此处) 然后我运行这个mysql。。。 显示创建表格书籍 结果是: CREATE TABLE `books` ( `name` varcha

所以我创建了这些表

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

create table books(
name varchar(55),
author varchar(55),
foreign key(author) references authors(name)
)
(我的外键语法取自此处)

然后我运行这个mysql。。。 显示创建表格书籍

结果是:

CREATE TABLE `books` (
 `name` varchar(55) DEFAULT NULL,
 `author` varchar(55) DEFAULT NULL,
 KEY `author` (`author`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
它只是说
KEY
它没有说外键

然后,我转到
INFORMATION\u SCHEMA
KEY\u COLUMN\u USAGE
REFERENCED\u TABLE\u NAME
REFERENCED\u COLUMN\u NAME
对于
书籍
作者
来说,值都是空的


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

外键不受
MyISAM
引擎支持,仅在
InnoDB
engine=MyISAM
中不支持
FK
,请使用InnoDB

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

ALTER TABLE books ENGINE = InnoDB;

在此之后,您可以创建FK

谢谢……实际上,您必须更改这两个表。我甚至不知道引擎是什么,但它可以工作。是的,外键可以从InnoDB工作到InnoDB表,您可以添加约束来执行
UPDATE
DELETE