Для следующей таблицы:Добавить уникальное ограничение на основе значения поля
Я хотел бы добавить ограничение, если IsBanned флаг установлен в истинное поле BannedOn не может быть оставлено пустым (не может будет установлено значение null).
Как это сделать в MySQL? Вот мой СОЗДАТЬ синтаксис:
CREATE TABLE IF NOT EXISTS `fa_ranking_system`.`Player` (
`PlayerID` INT NOT NULL AUTO_INCREMENT,
`FK_ServerID` INT NOT NULL,
`PlayerName` VARCHAR(15) NOT NULL,
`RegDate` DATETIME NOT NULL,
`IsBanned` TINYINT(1) NOT NULL,
`LastUpdatedOn` DATETIME NOT NULL,
`LastUpdatedBy` VARCHAR(20) NOT NULL,
`BannedOn` DATETIME NULL,
PRIMARY KEY (`PlayerID`, `FK_ServerID`),
INDEX `fk_Player_Server_idx` (`FK_ServerID` ASC),
CONSTRAINT `fk_Player_Server`
FOREIGN KEY (`FK_ServerID`)
REFERENCES `fa_ranking_system`.`Server` (`ServerID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
Это было бы 'CHECK' ограничение, а не' UNIQUE' ограничение (стандарт SQL), но они не поддерживаются в MySQL. –