PostgreSQL整数千位分隔符

ghhkc1vu  于 2024-01-07  发布在  PostgreSQL
关注(0)|答案(2)|浏览(174)

有时我需要生成大量的合成测试数据,比如几百万行。
通常情况下,当我预计一个表中有一千万行时,我编写如下查询来生成合成数据

SELECT generate_series(1, regexp_replace('10 000 000', ' ', '', 'g')::INTEGER) AS id;

字符串
但是我被这个无用的正则表达式函数调用和显式的整数转换所困扰。在postgres方言中有没有默认的千位分隔符?就像Java和C#中的下划线(10_000_000)一样,所以我可以这样写上面的查询:

SELECT generate_series(1, 10_000_000) AS id;


或者也许有其他解决方案可以使代码比这个分隔符更容易理解?

piwo6bdm

piwo6bdm1#

你能用科学符号吗,像这样

select generate_series(1, 1e10)

字符串
只要您不需要指定系列的确切结尾,它就可以满足您的人体工程学需求

mlmc2os5

mlmc2os52#

是的,从Postgres v16开始,可以在数字常量中使用下划线分隔符。
参考文件:
官方文档:词法结构> 4.1.2.6.数值常量
Underscores in numeric constants in PostgreSQL 16

相关问题