gpt4 book ai didi

MySQL 外键约束不适用?

转载 作者:行者123 更新时间:2023-11-29 08:14:16 25 4
gpt4 key购买 nike

我有表PlayersPlayerMeta

mysql> DESCRIBE Players;
+-------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+----------------+
| ID | int(5) | NO | PRI | NULL | auto_increment |
| PlayerName | varchar(20) | NO | PRI | NULL | |
| Birthdate | date | YES | | NULL | |
| Location | varchar(20) | YES | | NULL | |
| FirstName | varchar(15) | YES | | NULL | |
| Whitelisted | tinyint(1) | NO | | 1 | |
+-------------+-------------+------+-----+---------+----------------+

mysql> DESCRIBE PlayerMeta;
+----------------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+------------+------+-----+---------+-------+
| ID | int(5) | NO | PRI | NULL | |
| JoinDate | date | YES | | NULL | |
| BuildQuota | int(2) | NO | | 2 | |
| RegisteredDate | date | YES | | NULL | |
| HideBirthdate | tinyint(1) | NO | | 0 | |
+----------------+------------+------+-----+---------+-------+

我正在尝试执行此命令,它返回 Query OK:

ALTER TABLE PlayerMeta
ADD CONSTRAINT fk_PlayerID
FOREIGN KEY (ID)
REFERENCES Players(ID)
ON UPDATE CASCADE
ON DELETE CASCADE;

但是,当我运行 SHOW CREATE TABLE PlayerMeta 时,它没有显示约束,也不在 INFORMATION_SCHEMA

有什么想法吗?谢谢。

编辑:这是显示创建表PlayerMeta:

mysql> SHOW CREATE TABLE PlayerMeta;
... a bunch of lines ...
| PlayerMeta | CREATE TABLE `PlayerMeta` (
`ID` int(5) NOT NULL,
`JoinDate` date DEFAULT NULL,
`BuildQuota` int(2) NOT NULL DEFAULT '2',
`RegisteredDate` date DEFAULT NULL,
`HideBirthdate` tinyint(1) NOT NULL DEFAULT '0',
UNIQUE KEY `ID` (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |

编辑(2):问题是 PlayerMeta 中的 ID 已经是主键,外键不能与其一起应用。

最佳答案

您无法为 MyISAM 创建外键。

只有 InnoDB 支持它们。

因此,您的解决方案是更改两个表的存储引擎。

ALTER TABLE Players ENGINE=InnoDB;
ALTER TABLE PlayerMeta ENGINE=InnoDB;

然后重新应用您的 ALTER 并添加 FK 约束。

关于MySQL 外键约束不适用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20915947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com