Я считаю, что проблема заключается в том, что вы указываете столбцы в таблице проблем определение первичного ключа , которое должно быть установлено в значение null в случае удаления родительской строки.MySQL это не понравится, поскольку столбцы первичного ключа не могут содержать нулевые значения.
Быстрая настройка DDL таблицы проблем должна позволить вам делать то, что вы хотите.Одно из ключевых (без каламбура) различий между первичным ключом и уникальным ключом состоит в том, что столбцы уникального ключа могут содержать нулевые значения.Я предполагаю, что столбец issueID будет уникальным, учитывая, что он указан как AUTO_INCREMENT.Попробуйте следующее:
CREATE TABLE issue (
issueID INTEGER UNSIGNED AUTO_INCREMENT NOT NULL,
title VARCHAR(100) NOT NULL,
body TEXT NOT NULL,
duplicateOf INTEGER UNSIGNED,
issueDateTime DATETIME NOT NULL,
postBy INTEGER UNSIGNED NULL,
PRIMARY KEY (issueID),
UNIQUE INDEX (issueID,duplicateOf,postBy),
INDEX (postBy, duplicateOf),
FOREIGN KEY (duplicateOf) REFERENCES issue (issueID)
ON DELETE SET NULL,
FOREIGN KEY (postBy) REFERENCES user (userID)
ON DELETE SET NULL)
ENGINE = InnoDB;
Удачи!