重複の可能性:
MySQL トリガーでエラーをスローする
を使用するテーブル定義がありますCHECK
が、MySQL はこの機能をサポートしていないため、別のことを行う必要があります。INSERT
アイデアは、このテーブルの前または上でトリガーを使用することUPDATE
ですが、その方法がわかりません。
ここに表があります:
CREATE TABLE IF NOT EXISTS `smeii_media` (
`id` INTEGER AUTO_INCREMENT,
`type` VARCHAR(5) NOT NULL,
`title` VARCHAR(100) NOT NULL,
`description` VARCHAR(500),
`path` VARCHAR(100) NOT NULL,
UNIQUE(`path`),
PRIMARY KEY(`id`),
CONSTRAINT chk_media CHECK (`type`='audio' OR `type`='image' OR `type`='video')
) ENGINE=InnoDB;
そしてここにトリガーがあります:
DELIMITER $$
CREATE TRIGGER smeii_media_briu BEFORE INSERT OR UPDATE FOR EACH ROW
BEGIN
IF NEW.type != 'audio' AND NEW.type != 'image' AND NEW.type != 'video'
THEN
END IF;
END;
DELIMITER $$
エラーをスローするには、if ブロック内に何を入れることができますか?