石景山网站制作案例,网站模板 手机,郑州 网站建设 东区,海口市住房与城乡建设厅网站场景
Postgresql在Windows中使用pg_dump实现数据库(指定表)的导出与导入#xff1a;
Postgresql在Windows中使用pg_dump实现数据库(指定表)的导出与导入-CSDN博客
上面讲使用pg_dump进行postgresql的导出与导入。
如果使用Navicat可以直接连接两个库#xff0c;则可直接使…场景
Postgresql在Windows中使用pg_dump实现数据库(指定表)的导出与导入
Postgresql在Windows中使用pg_dump实现数据库(指定表)的导出与导入-CSDN博客
上面讲使用pg_dump进行postgresql的导出与导入。
如果使用Navicat可以直接连接两个库则可直接使用数据传输功能。
但是在传输某个表时提示
错误关系“xxx_xx_seq”不存在 ...id 注
博客霸道流氓气质_C#,架构之路,SpringBoot-CSDN博客
实现
1、这是因为源表的id字段为自增主键所以要在进行传输的表中执行新建自增主键序列的操作。 通过Navicat可以看到id字段为自增主键且序列名为tunnel_topology_rel_seq
所以需要在目标表中进行创建自增序列的操作创建之间先执行如果有则删除的操作。
Postgresql中执行删除和创建自增主键序列的语句
DROP SEQUENCE IF EXISTS tunnel_topology_rel_seq;CREATE SEQUENCE tunnel_topology_rel_seq;
执行成功之后 此时再执行数据传输则成功 2、pgsql里有种东西叫自增很像mysql里的约束。
建立一个自增的序列每次需要获取自增主键时调用一下这个序列就可以了。
建立自增主键的序列的语法
CREATE SEQUENCE
test_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START WITH 1
CACHE 1;
语法含义
INCREMENT BY 每次序列增加或减少的步长 MINVALUE 序列最小值NO MINVALUE表示没有最小值 MAXVALUE 序列最大值NO MAXVALUE表示没有最大值 START WITH 以什么序列值开始 CYCLE 序列是否循环使用 OWNED BY 可以直接指定一个表的字段也可以不指定。
为了测试新建一个user表 新建一个序列
CREATE SEQUENCE
user_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START WITH 1
CACHE 1; 序列的相关方法
函数返回类型描述currval( regclass )bigint获取指定序列最近一次使用netxval后的数值如果没有使用nextval而直接使用currval会出错lastval()bigint返回最近一次用 nextval 获取的任意序列的数值nextval( regclass )bigint递增序列并返回新值setval( regclass,bigint )bigint设置序列的当前数值setval( regclass,bigint ,boolean )bigint设置序列的当前数值以及 is_called 标志如果为true则立即生效如果为false则调用一次nextval后才会生效
3、postgresql中设置字段的默认值为序列的nextval
设置id字段的默认值为nextval(user_id_seq);
ALTER TABLE public.user ALTER COLUMN id SET DEFAULT nextval(user_id_seq);
再向user表中插入数据这样写
INSERT INTO public.user (name) VALUES (霸道);
自增主键序列成功 4、postgreql中查看序列当前值
SELECT currval(user_id_seq)