Я хочу создать триггер, который предотвращает удаление строки, если значение не равно 1.
Моя таблица:
CREATE TABLE `t_rechnung` (
`rechnungsnummer` VARCHAR(255) NOT NULL COLLATE 'utf8_general_ci',
`rechnungsdatum` DATE NOT NULL,
`bezahlt` BIT(1) NOT NULL DEFAULT b'0',
PRIMARY KEY (`rechnungsnummer`) USING BTREE
)
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
;
Все триггеры, которые я пробовал, не работают из-за они указаны с c до MySQL.
Изменить:
DELIMITER //
CREATE TRIGGER trg_test
BEFORE DELETE ON t_rechnung
FOR EACH ROW
BEGIN
IF bezahlt <> 1 THEN
SIGNAL SQLSTATE
END IF;
END //
Я пробовал это.
FOR EACH ROW
BEGIN
IF bezahlt <> 1 THEN
SIGNAL SQLSTATE '42000' SET MYSQL_ERRNO=42000, MESSAGE_TEXT='Unable to delete unpaid bills!';
END IF
END
И это.