Я пытаюсь удалить рубрики документа перед документом, но это не работает
Это должно работать , если нет в этой таблице столбца, которыйтакже упоминается другой таблицей как внешний ключ.Когда вы впервые разместили операторы CREATE
в комментариях, обе таблицы имели такие ссылки, но предоставленная вами ссылка показывает разные операторы.Таким образом, если ссылка содержит действительные операторы CREATE
, вы можете удалить сначала указанные строки, а затем строку из NETENTDOC
.Но вы можете достичь того, чего хотите, применив следующее: ON DELETE CASCADE
к FOREIGN KEY
:
CREATE TABLE `NETDOCRUB` (
`NETIDDOCRUB` BIGINT(20) NOT NULL AUTO_INCREMENT,
`NETNUPOS` BIGINT(2) NOT NULL,
`NETFGVISIBLE` TINYINT(4) NOT NULL,
`NETIDRUB` BIGINT(20) NOT NULL,
`NETIDENTDOC` BIGINT(20) NOT NULL,
PRIMARY KEY(`NETIDDOCRUB`),
FOREIGN KEY (`NETIDENTDOC`) REFERENCES `NETENTDOC` (`NETIDENTDOC`) ON DELETE CASCADE
);
ON DELETE CASCADE
заботится об удалении всех «дочерних» строк при удалении «родительской» строки.