MySQL INSERT ДО TRIGGER Не удается? - PullRequest
2 голосов
/ 16 июля 2010

Я использую MySQL 5.1.48 в Windows XP, и следующий триггерный тест не работает:

-- Drop the old table
DROP TABLE IF EXISTS `ikasan01`.`ikasanwiretap`;

-- Create
CREATE TABLE  `ikasan01`.`ikasanwiretap` (
 `Id` bigint(20) NOT NULL AUTO_INCREMENT,
 `ModuleName` varchar(255) NOT NULL,
 `FlowName` varchar(255) NOT NULL,
 `ComponentName` varchar(255) NOT NULL,
 `EventId` varchar(255) NOT NULL,
 `PayloadId` varchar(255) NOT NULL,
 `PayloadContent` varchar(255) NOT NULL,
 `CreatedDateTime` datetime NOT NULL,
 `UpdatedDateTime` datetime NOT NULL,
 `Expiry` datetime NOT NULL,
 PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- In order to use now() as a DEFAULT value on a datetime column we
have to do it via a BEFORE INSERT TRIGGER
CREATE TRIGGER defaultUpdateDateTime
BEFORE INSERT ON ikasanwiretap FOR EACH ROW
SET NEW.UpdatedDateTime = now();

-- Test the trigger
insert into IkasanWiretap (ModuleName, FlowName, ComponentName,
EventId, PayloadId, PayloadContent, CreatedDateTime, Expiry) values
('3', '3', '3', '3', '3', '3', now(), now());

В моем триггерном тесте я все еще получаю сервер MySQL, утверждающий, что UpdateDateTime не имеет значения по умолчаниюvalue.

Я перепробовал практически все, что было в моем распоряжении, поэтому я подумал, что попрошу у вас много полезного;) Есть идеи?

Cheers, Martijn

PS:X-опубликовано в лондонской группе пользователей Java и в списке рассылки Ikasan EIP.

1 Ответ

0 голосов
/ 16 июля 2010

Я полагаю, что триггер запускается после проверки ограничений "не ноль".

Удалите "не ноль" в UpdateDateTime.

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