MYSQL Триггер для исправления записей - PullRequest
0 голосов
/ 29 ноября 2011

У меня есть таблица MySQL, которая обновляется через веб-страницу.Некоторые столбцы отформатированы как целые числа.При попытке ввести "", "" или любую строку, которая не может быть автоматически округлена до целого числа, произойдет ошибка mysql.Вместо того, чтобы редактировать мой PHP для обработки этих исправлений, я хотел бы создать триггер ДО ТОГО, как ОБНОВИТЬ эту таблицу, который устанавливает значение поля в ноль, если оно является неправильным целочисленным значением.В другом сообщении о переполнении стека я обнаружил, что вы можете проверить целочисленное значение, используя ceil(field) = field.Вот синтаксис триггера создания:

delimiter|
create trigger before_folding_update before update on daily_folding_report
for each row
begin
if ceil(new.jobnum) != new.jobnum then
  set new.jobnum = 0;
end if;
end|

Если я поставлю do:

update daily_folding_report set jobnum = 'a'

Я все еще получаю ошибку: Incorrect integer value: 'a' for column 'jobnum' at row 1. Кто-нибудь еще знает, как я могу это сделать?

1 Ответ

1 голос
/ 29 ноября 2011

Насколько я знаю, все проверки значений выполняются до запуска.Почему вы просто не делаете это в своем PHP-коде?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...