##实现Mysql_fdw数据同步过程中,出现过很多坑,开此贴记录一下
1、触发器记录
这里insert的时候,采用过insert into f_pressureline select new.*,出现objectid永远插入为0的情况,所以改动如下:
CREATE OR REPLACE FUNCTION func_pressureline()
RETURNS trigger AS
$BODY$
BEGIN
if (TG_OP = 'DELETE') then
delete from f_pressureline where objectid = OLD.objectid;
return old;
elsif (TG_OP = 'UPDATE') then
update f_pressureline set hasattachm = new.hasattachm where objectid = OLD.objectid;
return new;
elsif (TG_OP = 'INSERT') then
insert into f_pressureline (objectid,pipelength, crttime, pipediam,pipematerial,location,burieddate,pipelinelayingmethod,areacode,companycode,crtuser) values (new.objectid,new.pipelength,new.crttime,new.pipediam,new.pipematerial,new.location,new.burieddate,new.pipelinelayingmethod,new.areacode,new.companycode,new.crtuser) ;
return new;
end if;
return null;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION func_pressureline()
OWNER TO sde;
2、date字段问题
在同步时,会有时间格式的数据出现,arcgis中不插入则会默认为null,但在mysql中会出现0000-00-00 00:00:00,导致查询错误。需要注意。
3、SDE中版本注册问题
在arcmap中,编辑要素时需要注册版本(Manage—Regsiter as version);Web端实现在线编辑功能时出现过未关闭注册版本时入不了库的问题。但是在同步数据库的时候没有发现版本注册问题对此的影响,暂且记录备忘。
4、连接意外断开问题
出现过服务器意外断开的情况,发现我触发器出错,数据入不了库会导致这种情况