为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:达梦8
【操作系统】:麒麟V10
【CPU】:
【问题描述】*:MySQL迁移到达梦8,ON UPDATE CURRENT_TIMESTAMP有问题,MySQL字段:UPDATE_TIME
datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP
达梦迁移过来:"UPDATE_TIME" TIMESTAMP(0)
现在要在达梦中加入自动更新时间,命令alter table IRRSERVER.REPO_APP_NODE MODIFY UPDATE_TIME TIMESTAMP(0) DEFAULT NULL ON UPDATE NOW();报错:
DM里面可以通过触发器来实现。
--创建测试表
create table test_update(id int,
UPDATE_TIME TIMESTAMP(0) DEFAULT NOW());
--创建触发器
create or replace trigger trig_test_update
BEFORE
update on test_update
for each row
begin
--select sysdate into :NEW.update_time from dual;
update test_update set update_time=now() where id = :NEW.id;
end;
--插入数据
insert into "test_update" VALUES(1,sysdate);
commit;
--查看数据
select *from "test_update";
--测试update效果
update "test_update" set id = 3 where id = 2;
commit;
--再次查询
select *from "test_update";
CREATE TABLE T2
(
"T1" INT,
"T2" TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP(6) on update localTIMESTAMP(6)) ;
insert into t2(t1) values (1);
select * from T2;
UPDATE t2 set t1=2 where t1=1;
可以在官网下载最新 的版本,改语法可满足需求
可以尝试把NOW换成SYSDATE