PostgreSQL 使用 CREATE TABLE AS SELECT 语句方便的备份数据到备份表

在实际项目中经常会遇到,需要开发人员手工上个脚本将某个表的部分数据做修改。

但是生产上的数据修改必须谨慎,需要考虑到万一改错了还能找到以前的数据做恢复。

PostgreSQL 数据库的 CREATE TABLE AS SELECT 语句可以方便的对数据做备份。

使用语法

1600757324796

示例

将 xx 表 data_month=’202004’的数据修改成’202005’,可以写成:

1
2
3
4
5
6
7
-- 先备份数据到备份表
create table bak_xx_20200405
as
select * from xx where data_month = '202004';

-- 再执行修改操作
update xx set data_month = '202005' where data_month = '202004';

参考

https://www.postgresql.org/docs/9.5/sql-createtableas.html