У меня есть пользовательская таблица, которая имеет внешнее ограничение на таблицу core_website
. Однако on delete cascade
не работает.
Я выполнил поиск и нашел соответствующую ветку , в которой отмечается, что типы данных между двумя столбцами должны быть одинаковыми. Оба типа данных smallint(5)
.
Я заметил одно небольшое несоответствие в определении столбца, которое заключается в том, что в core_website Allow Null установлен not , а Default не установлен на ноль, тогда как в таблице учетных записей Allow Null установлено и значение по умолчанию равно нулю. Я не думал, что их изменение окажет какое-либо влияние, но я пошел дальше и изменил их в таблице счетов, чтобы соответствовать, но это не помогло.
CREATE TABLE `account` (
`account_id` smallint(11) unsigned NOT NULL AUTO_INCREMENT,
`website_id` smallint(5) unsigned DEFAULT '0',
`code` varchar(64) NOT NULL DEFAULT '',
PRIMARY KEY (`account_id`),
UNIQUE KEY `code` (`code`),
KEY `FK_WEBSITE_ID` (`website_id`),
CONSTRAINT `FK_WEBSITE_ID` FOREIGN KEY (`website_id`) REFERENCES `core_website` (`website_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=44 DEFAULT CHARSET=utf8