在开发过程中,我们可能会需要将数据库移到服务器上,那么我们便需要将数据进行导出导入操作,普通情况下不需要其余操作,直接导出导入参考上一篇的语句即可;
若是我们在另一个数据库已经创建好了一个一模一样的表,那么,我们只需要将数据插入进去即可,便可以用下面这种方法:
- pg_dump -h 地址 -p 端口 -U 用户名 -t 表名 --inserts -f 路径 数据库名
例如:pg_dump -h localhost -p 5432 -U postgres -t contract_info --inserts -f E:\micn.sql dbName
完成后,只要将E:\micn.sql打开。取里面的insert语句在相应的数据库下执行便可。
需注意:已经创建好的表需要和之前的表一模一样,比如列的位置什么的,因为他生成的insert语句是这样的:
INSERT INTO public.contract_info VALUES (123, '12345');
INSERT INTO public.contract_info VALUES (124, '22345');
INSERT INTO public.contract_info VALUES (125, '33456');
INSERT INTO public.contract_info VALUES (126, '38886');
这样比较有局限性,所以一般情况下推荐下面这种方法;;
下面这种方法生成的insert语句,会带有每列的字段,这样保证不会出错;
比如说像在固定位置增加一列,这样便会轻松实现啦!!
语法如下:
- pg_dump -h 地址 -p 端口 -U 用户名 --column-inserts -t 表名 -f 路径 数据库名
例如:pg_dump -h localhost -p 5432 -U postgres --column-inserts -t contract_info -f E:\micn.sql dbName
他生成的insert语句是酱紫滴:
INSERT INTO public.contract_info (contract_id, contract_string) VALUES (123, '12345');
INSERT INTO public.contract_info (contract_id, contract_string) VALUES (124, '22345');
INSERT INTO public.contract_info (contract_id, contract_string) VALUES (125, '33456');
INSERT INTO public.contract_info (contract_id, contract_string) VALUES (126, '38886');