MariaDB предотвращает удаление, если значение не 1 - PullRequest
0 голосов
/ 17 июня 2020

Я хочу создать триггер, который предотвращает удаление строки, если значение не равно 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

И это.

...