|
MySQL.RU - Webboard
Вернуться
Не работает триггер? (Серж) 06/06/2015 - 15:18:00
Re: Не работает триггер? (Akina) 06/06/2015 - 15:56:34
> Original message text:
> From: Серж - 06/06/2015 - 15:18:00
> Subject:Не работает триггер?
> -----------------
> Имеем:
>
> mysql> create table personen
> -> (phone char(12) not null primary key,
> -> name varchar(50) not null,
> -> password char(10) not null,
> -> register date not null)
> -> engine=innodb;
> Query OK, 0 rows affected (0.24 sec)
>
> mysql> delimiter !!
> mysql> create trigger personen_insert
> -> before insert on personen
> -> for each row
> -> begin
> -> set new.register = now();
> -> end!!
> Query OK, 0 rows affected (0.16 sec)
>
> mysql> delimiter ;
>
> mysql> insert into personen(phone, name, password)
> -> values('123', 'Serg', 'asd');
> ERROR 1364 (HY000): Field 'register' doesn't have a default value
>
> Что означает данная ошибка? Ведь недостающее поле 'register' должно подставляться триггером!
>
From: Akina - 06/06/2015 - 15:56:34
Subject:Не работает триггер?
-----------------
Набор с алиасом NEW формируется из записи таблицы (эдакий себе virtual record dirty read), а не как отображаемый на структуру непривязанный массив. Потому и срабатывает ограничение NOT NULL, a DEFAULT VALUE отсутствует.
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
43346
|
|