如何将SQL查询结果保存为一系列INSERT语句并写入.sql文件中。
如何将SQL查询结果保存为一系列INSERT语句并写入.sql文件中。
我正在处理一个PostgreSQL数据库。我想将SELECT
查询的结果作为INSERT
语句列表,并将它们保存到一个.sql
文件中(假设为exported_data.sql
)。
这是因为以后我想在另一个数据库上运行.sql
文件,将数据“导入”到表中,以使表得到“更新”。
psql my_database -h my_host < exported_data.sql
假设我的查询是:
SELECT * FROM params_table WHERE params_type = 'tkt';
- 创建一个临时表,填充查询结果
CREATE TABLE temporary_table AS SELECT * FROM params_table WHERE params_type = 'tkt';
- 将表导出为
.sql
文件的INSERT
语句列表pg_dump --table=temporary_table --data-only --column-inserts my_database -h my_host > exported_data.sql
- 删除表,以保持数据库干净。
DROP TABLE temporary_table;
有没有一种一次完成的方法?
我之所以问这个问题,是因为我不想每次需要导出一些数据时都创建和删除临时表。
我从这个帖子中看到,对于MySQL数据库,可以一次完成:
mysqldump -u root -p my_database -h my_host params_table --where="params_type = 'tkt'" > exported_data.sql
所以我阅读了Postgresql的pg_dump
文档,但我找不到--where
子句的等效选项。