Как добавить пользовательское ограничение CHECK в таблицу MySQL?

У меня проблемы с этой таблицей

CREATE TABLE `Participants` (
  `meetid` int(11) NOT NULL,
  `pid` varchar(15) NOT NULL,
  `status` char(1) DEFAULT NULL,
  PRIMARY KEY (`meetid`,`pid`),
  CONSTRAINT `participants_ibfk_1` FOREIGN KEY (`meetid`) REFERENCES `Meetings` (`meetid`) ON DELETE CASCADE
  CONSTRAINT `participants_ibfk_2` CHECK (status IN ('a','d','u'))
  CONSTRAINT `participants_ibfk_3` CHECK (pid IN (SELECT name FROM Rooms) OR pid IN (SELECT userid FROM People))
);

Я хочу иметь ограничение внешнего ключа, и это работает. Затем я также хочу добавить ограничение к атрибуту status , поэтому он может принимать только значения «a», «d» и «u». Я не могу установить поле как Enum или set .

Кто-нибудь может сказать мне, почему этот код не работает в MySQL?

32
задан Vlad Mihalcea 3 July 2019 в 09:25
поделиться