文章目录
导出
导出单表结构+数据为sql文件
- ubuntu:
- su - postgres :切换到postgres用户
- \pg_dump -U postgres role(database) -t role.user(table) > dump.sql;
- 注意:不要执行 psql,而且要加 \
- 注意:不要执行 psql,而且要加 \
- 注意:不要执行 psql,而且要加 \
- win10:
- 切换到 postgresql 的bin目录下(不过如果配置了环境变量应该也不用切换)
- pg_dump -d role(database) -U postgres -t role.user(table) -f C:\Users\LENOVO\Desktop\dump2.sql -a(-a 表示只导出数据)
- 输入密码即可
- 更多参数可以通过pg_dump --help查看,Linux和Windows应该是一样的
导出整个数据库结构+数据为sql文件
- 和单表差不多,只是不加-t及其参数
导出所有数据库信息及数据
- pg_dumpall > db.sql
- 参考:https://www.linuxlz.com/pos/1546.html
导出指定的数据到csv
- COPY (select * from user where flag = 0 ) TO ‘/path/a.csv’ WITH csv (header 加这个就是带表头说明);
- 注意要先执行psql,然后切换到指定数据库
导入
导入包含单表结构+数据的sql文件
- \c db_name 切换到数据库
- \i /home/qqyang/test.sql (注意这是Ubuntu)
- windows下也一样:\i C:/Users/LENOVO/Desktop/dump2.sql (注意文件路径是/不是\)
- 如果没有切换数据库,就需要在sql文件最前面加上:\c db_name (总之就是要先切换)
导入包含整个数据库结构+数据的sql文件
- 和单表导入一样
导入只包含数据的csv文件到指定表
- COPY role.user FROM ‘C:\Users\Administrator\Desktop\user.csv’ WITH csv;
- 注意要先执行psql,然后切换到指定数据库
命令行导入
- psql -U postgres -f dump.sql
- 如果使用的导出命令是:pg_dumpall > db.sql,这个就不用先创建数据库了,具体看导出的文件里是否有创建数据库的命令
- -d 指定导入哪个数据库