如何在DBeaver中为PostgreSQL查询设置别名优化INSERT导出语句
如何给DBeaver中的PostgreSQL查询结果设置别名以规范导出INSERT语句格式
问题描述
我使用DBeaver对两个PostgreSQL表执行左连接查询,语句如下:
select p.* from xxxxx as p left join xxxxxx as a on a.id=p.id where p.id in ('id1','id2'...) and p.e_d >= a._d::DATE
但导出的INSERT结果中,目标表部分是整个查询语句,格式如下:
INSERT INTO "select p.* from xxxxx as p left join xxxxxx as a on a.id=p.id where p.id in ('id1','id2'...) and p.e_d >= a._d::DATE" (id,...) VALUES (xxx,....)
希望给该查询设置别名,使导出的INSERT语句格式变为:
INSERT INTO "alias" (id,...) VALUES (xxx,....)
解决方案
把原查询包装成一个带别名的子查询,修改后的SQL语句如下:
SELECT * FROM ( select p.* from xxxxx as p left join xxxxxx as a on a.id=p.id where p.id in ('id1','id2'...) and p.e_d >= a._d::DATE ) AS alias;
执行这个修改后的查询后,再导出INSERT语句,DBeaver就会将子查询的别名alias作为目标表名写入INSERT语句中,符合你想要的格式。
内容的提问来源于stack exchange,提问作者Omarou
相关产品推荐
相关产品推荐

