从postgres中导出数据到csv中
1 用postgres用户(root)登录postgresql
2 建一个csv文件,并 chmod 777
3 在原数据中修改----title中的;改成:(有;的标题在导出到csv中时会被拆分成两列)
update article_article set title = 'China’s Copycats: Online vs. Offline.' where id=7939;
update article_article set title = 'Web browsers used most in China: how this impacts online campaigns.' where id=7804;
update article_article set title = 'Web browsers used most in China: how this impacts online campaigns.' where id=7926;
update article_article set title = 'Douban.com: China’s Amazon/Digg Hybrid Social Media Network.' where id=7973;
update article_article set title ='“China average daily salary is RMB 111.99???”: Chinese netizens challenge government statistics. ' where id=8029;
update article_article set title = 'China Telecom: Becoming the telephone version of Google.' where id=8072;
update article_article set title = 'The Rich Tighten Pockets: Online Shopping is New Obsession' where id=8169;
update article_article set title = 'The Good, The Bad And The Foreigner: Learning To Accept Myself Through The Eyes Of Others.' where id=7541;
update article_article set title = 'Johnson & Johnson: Big girls don’t cry… or let their bones break.' where id=8066;
select * from article_article where title like '%;%';
4----超级用户postgres, 登录
运行sql
COPY (SELECT * FROM article_article limit 50) TO '/home/david/myfile.csv' WITH CSV HEADER;
5--把导出的csv文件的第一行(culomn名删了)
csv导入mysql
1----mysql 是从 /var/lib/mysql/blog (blog是数据库名)这个目录下读文件的,所以把csv放到此目录下
然后在mysql运行sql命令:
load data infile 'myfile.csv'
into table blog.article
fields terminated by ',' optionally enclosed by '"' escaped by '"'
lines terminated by '\n';
***问题
postgres中boolean是用true和false表示 (在csv中是t和f)
但mysql中是用1和0(tinyint)表示,直接导入的话在mysql中都是显示0
把t和f改成1和0
2----导入后用py脚本update布尔值
#encoding:utf-8 import psycopg2 import MySQLdb psycopg2_conn = psycopg2.connect( #database="expat", database="postgres", user="david", password="1", host="localhost", port="5432" ) mysql_conn= MySQLdb.connect( host='localhost', port = 3306, user='root', passwd='1', db ='blog', ) def import_mysql_boolean(): ''' postgres中boolean是用true和false表示 (在csv中是t和f) 但mysql中是用1和0(tinyint)表示,直接导入的话在mysql中都是显示0 直接改csv把t和f改成1和0导致导入mysql的某些数据column对不上 先把原数据导入mysql,再通过这个函数update布尔值 ''' cur = psycopg2_conn.cursor() cur.execute(''' select id,is_approved, is_special, is_welcome, is_shf_featured, is_shf_sponsored, is_homepage_sponsored, is_home_featured from article_article --where id in (8029 ,10691, 10099, 8810, 8936, 8939 , 10126 ,10128 ,10222 ,9217 ,9178,7898,7899) --limit 1000 ''') rows = cur.fetchall() #print rows cur.close() psycopg2_conn.commit() psycopg2_conn.close() cur2 = mysql_conn.cursor() for row in rows: arow = list() arow.append(row[0]) arow.append(1) if row[1] is True else arow.append(0) # is_approved arow.append(1) if row[2] is True else arow.append(0) # is_special arow.append(1) if row[3] is True else arow.append(0) # is_welcome arow.append(1) if row[4] is True else arow.append(0) # is_shf_featured arow.append(1) if row[5] is True else arow.append(0) # is_shf_sponsored arow.append(1) if row[6] is True else arow.append(0) # is_homepage_sponsored arow.append(1) if row[7] is True else arow.append(0) # is_home_featured sql = ''' update article set is_approved={is_approved}, is_special={is_special}, is_welcome={is_welcome}, is_shf_featured={is_shf_featured}, is_shf_sponsored={is_shf_sponsored}, is_homepage_sponsored={is_homepage_sponsored}, is_home_featured={is_home_featured} where id = {id} '''.format(id=arow[0], is_approved=arow[1], is_special=arow[2], is_welcome=arow[3], is_shf_featured=arow[4], is_shf_sponsored=arow[5], is_homepage_sponsored=arow[6], is_home_featured=arow[7], ) print sql cur2.execute(sql) cur2.close() mysql_conn.commit() mysql_conn.close()
还有一种需要转义的情况 比如 要在表格中插入 ‘App\Article’ ,在python中写成 'App\\\Article', 它会被python转义一次,在插入mysql时又会被转一次,最终在mysql的表中就会表示成 ‘App\Article’
相关推荐
导出数据字典工具 支持mysql,sqlserver,postgresql
基于nifi将mysql数据导入clickhouse。 给出了基于http与JDBC两种方式
upper.io/db.v3 Go的upper.io/db.v3软件包是Go的高效数据访问层,它提供了一个通用接口来处理不同的数据源,例如PostgreSQL,MySQL,SQLite,MSSQL,QL和MongoDB 。 Go的upper.io/db.v3软件包,是Go的高效数据访问层...
Oracle、MySql、MsSql 的数据提供程序。... 您可以在不了解 SQL 语言的情况下直观地编辑您的查询,开发复杂的条件,然后将结果行导出到 Excel、Word 或其他桌面工具中,从而完成分析、布局或编辑。
不管是日常业务数据处理中,还是数据库的导入导出,都可能遇到需要处理大量数据的插入。插入的方式和数据库引擎都会对插入速度造成影响,这篇文章旨在从理论和实践上对各种方法进行分析和比较,方便以后应用中插入...
VFront是一个MySQL与PostgreSQL数据库前端管理工具。VFront采用Ajax方式管理数据,提供不同的规则与权限进行分组,导出XML,HTML,PDF格式的报表,提供统计分析等功能。
Navicat Premium是一套数据库管理工具,结合了其它Navicat成员的功能,支持单一程序同時连接到MySQL、MariaDB、SQL Server、SQLite、Oracle和PostgreSQL数据库。Navicat Premium可满足现今数据库管理系统的使用功能...
支持MySQL, PostgreSQL, MairaDB, 阿里云数据库,腾讯云数据库等云平台数据库。 包含有功能不限于以扯功能: 连接管理 库管理 表管理 数据查看和编辑 原生SQL执行 导入导出 用户权限 数据备份 数据迁移 表结构管理...
支持MySQL, PostgreSQL, MairaDB, 阿里云数据库,腾讯云数据库等云平台数据库。 包含有功能不限于以扯功能: 连接管理 库管理 表管理 数据查看和编辑 原生SQL执行 导入导出 用户权限 数据备份 数据迁移 表结构管理...
支持MySQL, PostgreSQL, MairaDB, 阿里云数据库,腾讯云数据库等云平台数据库。 包含有功能不限于以扯功能: 连接管理 库管理 表管理 数据查看和编辑 原生SQL执行 导入导出 用户权限 数据备份 数据迁移 表结构管理...
支持MySQL, PostgreSQL, MairaDB, 阿里云数据库,腾讯云数据库等云平台数据库。 包含有功能不限于以扯功能: 连接管理 库管理 表管理 数据查看和编辑 原生SQL执行 导入导出 用户权限 数据备份 数据迁移 表结构管理...
PostGreSql它由两个模块组成,一个管理模块“ Panda-Adm”需要一个Oracle数据库(最少9个),一个请求者模块“ Panda-Qry”可以与Oracle,Mysql和MsSql数据库一起使用。 管理模块“ Panda-Adm”以BO的形式完全管理...
Navicat是一个通用查询分析器,支持MySQL、SQL Server、Oracle、SQLite、PostgreSQL等数据库。更可以将表中数据导出成Insert语句。
Adminer(原phpMinAdmin)是用PHP编写的一个全功能的数据库管理工具,类似phpMyAdmin,它是由一个单一的文件准备部署到目标服务器的,Adminer可用于MySQL和PostgreSQL,SQLite的,MS SQL,甲骨文,Firebird,Simple...
Navicat Premium是一个数据库开发工具,可让您从单个应用程序同时连接到MySQL,MariaDB,MongoDB,SQL Server,Oracle,PostgreSQL和SQLite数据库。与Amazon RDS,Amazon Aurora,Amazon Redshift,Microsoft Azure...
Golang和PostgreSQLSQL迁移 该软件包允许您使用在PostgreSQL数据库上运行迁移。 有关详细信息,请参见。 您可能还需要在做出决定之前检查 。 安装 go-pg / migrations需要具有支持的Go版本,并使用导入路径版本...
结合了其他Navicat成员的功能,有了这种连接到不同数据库的能力,它可以在MySQL、SQLite、Oracle、MariaDB、Mssql、及PostgreSQL之间进行数据传输,同时Navicat Premium也支持大部份数据库管理系统中使用的功能,...
- 从csv文件导入单个表数据时,PostgreSQL数据库表不会显示表; - 在某些php配置中,由于Cookie和请求变量被合并,数据库选择不起作用; - 为某些Pgsql数据库生成的插入查询由于语法错误而无法执行; - 使用pgsql...
HeidiSQL HeidiSQL是有用且可靠的工具,是使用流行...另外,您可以将结构和数据导出到SQL文件,剪贴板或其他服务器。 阅读有关功能或查看一些屏幕截图。 查看在线帮助页面以了解如何使用HeidiSQL。 需要构建Delphi XE5
从纯文本文件格式导入/导出数据。 我们致力于改善响应能力,可用性和性能。我们设计了一种全新的机制并应用了多线程,因此您可以并行运行某些任务以提高数据库开发的整体效率。 管理本地和云数据库,例如Amazon RDS...