MySql时间戳触发器防止新插入

时间:2015-10-22 16:25:08

标签: mysql triggers timestamp

我在插入新行时尝试创建触发器以更新表的CREATED_DATE字段,但最终会破坏Java应用程序。

基本上我有一个NMS在发生警报时写入MySql服务器。我创建了以下触发器,因为Java应用程序没有将时间戳应用于警报创建(即使有一个字段):

CREATE TRIGGER alarm_timestamp AFTER INSERT on Alarm_Details FOR EACH ROW UPDATE Alarm_Details SET CREATED_DATE = NOW() WHERE ID = NEW.ID;

执行此触发后,警报永远不会写入表格。然后我放下触发器,它们立即再次工作。

我编写触发器的方式有问题吗?我惊讶于Sql server中的触发器阻止了应用程序提交插入查询。

我现在尝试使用以下内容向列添加默认值:

alter table Alarm_Details add constraint df_alarm_time default NOW()  for CREATED_DATE;

我在CREATED_DATE的默认NOW()附近遇到语法错误。'

我也尝试过:

ALTER TABLE Alarm_Details ALTER CREATED_DATE SET DEFAULT NOW();

它不像NOW,CURRENT_TIMESTAMP或其他任何东西。该列设置为键入datetime。

我正在使用MySql 5.5.25。

0 个答案:

没有答案