У меня есть таблицы Players
и PlayerMeta
Ограничение внешнего ключа MySQL не применяется?
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
Любые мысли? Благодарю.
EDIT: Вот SHOW CREATE TABLE 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 |
EDIT (2): Проблема была ID
в PlayerMeta
уже первичный ключ и внешний ключ не будет применяться в сочетании с ним.
Итак, покажите нам 'SHOW CREATE TABLE' – zerkms
Успешно ли выполнена команда? У вас были ошибки? вы обновили после создания ограничения ??? –
@ M.Ali: "и он возвращает запрос ОК:". PS: «вы обновили после создания ограничения» - что это означает? – zerkms