wunderwaffe: тупят другие (karliki)
доктор Вандершпигель ([personal profile] wunderwaffe) wrote2022-03-14 01:59 am
Entry tags:

И еще про автоматическое преобразование типов - глюк в триггерах mySQL

Известный финт - как сделать триггер 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

Post a comment in response:

If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting