赞
踩
研究了一下navicat这个工具怎么做数据表迁移,大概三种方法:
A、postgresql为例,源数据表SQL转储,导出成SQL(里面包含了创建数据库结构和插入数据的SQL),再在目标数据库运行SQL,但是需要主要的是该导出的SQL是含有模式名的,所以要查找替换成目标数据库模式名,另外该SQL的自增字段是用的绑定序列的方法:
"id" int4 DEFAULT nextval('simple_captcha_data_id_seq'::regclass) NOT NULL,
然而目标数据库是没有这个序列的,可以先create新的序列:
create sequence tbl_xulie2_id_seq increment by 1 minvalue 1 no maxvalue start with 1;
这里start with可以改成源序列一样的值(应该还可以create table的时候用serial关键字产生自增字段)。
B、只是传递表的数据,不传递结构,可以用navicat的导出向导和导入向导,导出为txt包含列名,再导入到目标数据库就可以;
C、navicat本身提供了一个数据传输的功能,如果用原表ctrl+C,目标数据库ctrl+V也能激发这个功能,但是传输会报错,我把对应的序列也一同传输过去仍然有错误,我没深究这个问题,放弃了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。