Я создал простую таблицу в MySQL с круговой целостностью. Но это нарушает круговую целостность. Он показывает успешное выполнение запроса, но при попытке вставить данные, даже если он нарушает введенные ограничения. Вот скриншот m mysql console
Проверьте правильность написания значения в начале инструкции вставки, это должно быть
insert into bb values(1,2);
Кроме того, использование имен столбцов не является хорошей практикой
попробуйте следовать
CREATE TABLE 'bb' (
'ssn' int(11) NOT NULL,
'superssn' int(11) DEFAULT NULL,
PRIMARY KEY ('ssn'),
KEY 'superssn' ('superssn'),
CONSTRAINT 'bb_ibfk_1' FOREIGN KEY ('superssn') REFERENCES 'bb' ('ssn')
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
это может быть из-за механизма хранения. По умолчанию он может использовать MyISAM.
Попробуйте создать структуру с движком innodb следующим образом
CREATE TABLE IF NOT EXISTS 'bb' (
'ssn' int(11) NOT NULL DEFAULT '0',
'suppperssn' int(11) DEFAULT NULL,
PRIMARY KEY ('ssn'),
FOREigN KEY ('suppperssn') REFERENCES bb('ssn')
) ENGINE=InnoDB DEFAULT CHARSET=latin1;