![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Известный финт - как сделать триггер BEFORE INSERT для того, чтобы не вставлять в таблицу нежелательное значение. Для этого определенному полю присваивается атрибут NOT NULL (в нижеследующем примере это usern) а далее пишется такой триггер -
IF (не, вставлять это не будем) THEN
SET NEW.usern = NULL;
END IF;
и теперь MySQL не сможет его вставить, выдав сообщение о ошибке -
#1048 - Столбец 'usern' не может принимать величину NULL
А МОЖЕТ И ВСТАВИТЬ, присвоив столбцу usern просто пустую строку - в зависимости от вида запроса, который включает триггер.
Это наблюдается, если usern это varchar utf8_bin. Если это тип int, то этого глюка не наблюдается. Наверное. Пока.
10.4.22-MariaDB
IF (не, вставлять это не будем) THEN
SET NEW.usern = NULL;
END IF;
и теперь MySQL не сможет его вставить, выдав сообщение о ошибке -
#1048 - Столбец 'usern' не может принимать величину NULL
А МОЖЕТ И ВСТАВИТЬ, присвоив столбцу usern просто пустую строку - в зависимости от вида запроса, который включает триггер.
Это наблюдается, если usern это varchar utf8_bin. Если это тип int, то этого глюка не наблюдается. Наверное. Пока.
10.4.22-MariaDB