我的解决方案,这似乎已经奏效是删除旧的FID和手工创建它,且不会与主键列在使用BIGSERIAL的数据类型。在FME我码的手动添加列“名称”使用串行作为“类型”的FME PostGIS的作家的“用户属性” FID。
我用下面的SQL语句。
CREATE SEQUENCE mytable_fid_seq;ALTER TABLE MYTABLE ADD COLUMN FID BIGINT DEFAULT NEXTVAL( 'mytable_fid_seq');归mytable.fid ALTER SEQUENCE mytable_fid_seq;ALTER TABLE MYTABLE ADD PRIMARY KEY(FID);
不过,我需要使用现有表,以及在那里我宁愿不新分配FID值,但保留旧的。有什么建议么?
谢谢你的建议。我尝试都保持在作家FID和我试着删除它,在这两种情况下,该方法失败。
不过我试过@arnebrucksch而有一些事情要注意。BIGSERIAL不是数据类型,只是一个快捷方式创建序列。不过,我手动创建一个序列,他建议和分配的主键到此序列。现在FME不再抛出错误。
尝试手动删除在作家“FID”列。
或者看从尖端@arnebrucksch这里:
https://knowledge.亚搏在线safe.com/questions/1703/serial-data-types-and-insert-into-postgresql.html