为什么我的桌子不支持FOREIGN KEYS?

tho*_*ris 1 mysql sql

我在mysql中创建了一个数据库和10个表(表类型为NONE),我无法创建外键.一条警告信息说

SQLyog所选表不支持外键.表引擎必须是InnoDB,PBXT或SolidDB

我现在必须改变我的所有桌子吗?感谢任何提示或建议

wso*_*son 15

通常,InnoDB用于支持外键和事务:

http://dev.mysql.com/doc/refman/5.1/en/innodb.html

您可以动态更改表引擎:

ALTER TABLE tableName ENGINE = InnoDB;
Run Code Online (Sandbox Code Playgroud)

您还可以更改默认值 - 对于新创建的表 - 如下所示:

http://dev.mysql.com/doc/refman/5.1/en/storage-engine-setting.html

  • "或者更改此处显示的默认值"不太正确,因为更改默认值不会更改已创建的表的格式. (2认同)

use*_*363 8

您正在使用的引擎不支持外键(因为错误消息显然告诉您).您可以更改正在使用的引擎

ALTER TABLE `tableName` ENGINE = newEngine;
Run Code Online (Sandbox Code Playgroud)