Postgresql创建外部表时如果外部表(FOREIGN TABLE)没有主键就无法对外部表进行修改和删除操作,只能查询。所以如果要引用的外部表有主键的话创建的时候一定要把相应的主键也创建上。 示例如下:
CREATE FOREIGN TABLE public.usersinfo(
userno character varying(20) OPTIONS (key 'true') NOT NULL DEFAULT '*'::character varying COLLATE pg_catalog."default",
username character varying(20) OPTIONS (key 'true') NOT NULL COLLATE pg_catalog."default",
age int8 NOT NULL DEFAULT 0,
updatetime timestamp(6) without time zone NULL
)
SERVER oracle_db
OPTIONS (schema 'DBUSER', table 'tsysusers');
说明:示例使用的外部数据库为Oracle,用户名为DBUSER,Oracle中的数据表为tsysusers,示例中主键字段为userno 和username
另外将创建的外部表授权的语句为 :
GRANT SELECT,UPDATE,DELETE, REFERENCES ON TABLE public.usersinfo TO your_user_name;
还不快抢沙发