如何使用SQL为带有电话号码的数据库表种子?
我的postgres数据库中有一个表,用于存储电话号码,格式为:如何使用SQL为带有电话号码的数据库表种子?,sql,postgresql,Sql,Postgresql,我的postgres数据库中有一个表,用于存储电话号码,格式为:12223334444(作为varchar) 据我所知,我将与美国的电话号码,只是我认为这将是一个好主意,预先填充数据库与所有电话号码,可以要求。也就是说,从11_111_111_111到19_999_999的所有数字 现在我通过使用应用程序代码来实现这一点,这需要很长时间 假设我有一个名为phones的表和一个名为digits的列,有没有办法使用SQL填充数据库 谢谢大家! 这是一个疯狂的问题,但博士后有答案 SELECT gen
12223334444
(作为varchar)
据我所知,我将与美国的电话号码,只是我认为这将是一个好主意,预先填充数据库与所有电话号码,可以要求。也就是说,从11_111_111_111
到19_999_999
的所有数字
现在我通过使用应用程序代码来实现这一点,这需要很长时间
假设我有一个名为phones
的表和一个名为digits
的列,有没有办法使用SQL填充数据库
谢谢大家! 这是一个疯狂的问题,但博士后有答案
SELECT generate_series(1,19999999999)
这将创建一个表,其中所有数字都在1和199999999之间
INSERT INTO phone_table(phone number)
SELECT LPAD(g::VARCHAR(12),10,'0') FROM generate_series(1,19999999999) AS g;
这仍然需要很长时间,但可能比应用程序代码快 这是一个疯狂的问题,但博士后有答案
SELECT generate_series(1,19999999999)
这将创建一个表,其中所有数字都在1和199999999之间
INSERT INTO phone_table(phone number)
SELECT LPAD(g::VARCHAR(12),10,'0') FROM generate_series(1,19999999999) AS g;
这仍然需要很长时间,但可能比应用程序代码快 这是一个疯狂的问题,但博士后有答案
SELECT generate_series(1,19999999999)
这将创建一个表,其中所有数字都在1和199999999之间
INSERT INTO phone_table(phone number)
SELECT LPAD(g::VARCHAR(12),10,'0') FROM generate_series(1,19999999999) AS g;
这仍然需要很长时间,但可能比应用程序代码快 这是一个疯狂的问题,但博士后有答案
SELECT generate_series(1,19999999999)
这将创建一个表,其中所有数字都在1和199999999之间
INSERT INTO phone_table(phone number)
SELECT LPAD(g::VARCHAR(12),10,'0') FROM generate_series(1,19999999999) AS g;
这仍然需要很长时间,但可能比应用程序代码快 这是个坏主意
select 19999999999 - 11111111111;
8888888888
这大约是89亿个电话号码。不要建那么大的桌子,除非你必须这样做。较大的表会严重影响事务日志、索引大小、备份大小和完成时间等
但是,如果您需要为PostgreSQL生成和加载大量这样的数据,有两种明智的方法
步骤取决于是使用PostgreSQL还是使用应用程序代码生成数据
对于PostgreSQL,在事务中
- 删除所有索引和约束
- 生成并插入数据
- 创建所有索引和约束,以及
- 提交事务
- 使用应用程序代码生成csv文件
- 删除所有索引和约束
- 加载带有副本的csv文件
- 创建所有索引和约束 这是个坏主意
select 19999999999 - 11111111111;
8888888888
这大约是89亿个电话号码。不要建那么大的桌子,除非你必须这样做。较大的表会严重影响事务日志、索引大小、备份大小和完成时间等
但是,如果您需要为PostgreSQL生成和加载大量这样的数据,有两种明智的方法
步骤取决于是使用PostgreSQL还是使用应用程序代码生成数据
对于PostgreSQL,在事务中
- 删除所有索引和约束
- 生成并插入数据
- 创建所有索引和约束,以及
- 提交事务
- 使用应用程序代码生成csv文件
- 删除所有索引和约束
- 加载带有副本的csv文件
- 创建所有索引和约束 这是个坏主意
select 19999999999 - 11111111111;
8888888888
这大约是89亿个电话号码。不要建那么大的桌子,除非你必须这样做。较大的表会严重影响事务日志、索引大小、备份大小和完成时间等
但是,如果您需要为PostgreSQL生成和加载大量这样的数据,有两种明智的方法
步骤取决于是使用PostgreSQL还是使用应用程序代码生成数据
对于PostgreSQL,在事务中
- 删除所有索引和约束
- 生成并插入数据
- 创建所有索引和约束,以及
- 提交事务
- 使用应用程序代码生成csv文件
- 删除所有索引和约束
- 加载带有副本的csv文件
- 创建所有索引和约束 这是个坏主意
select 19999999999 - 11111111111;
8888888888
这大约是89亿个电话号码。不要建那么大的桌子,除非你必须这样做。较大的表会严重影响事务日志、索引大小、备份大小和完成时间等
但是,如果您需要为PostgreSQL生成和加载大量这样的数据,有两种明智的方法
步骤取决于是使用PostgreSQL还是使用应用程序代码生成数据
对于PostgreSQL,在事务中
- 删除所有索引和约束
- 生成并插入数据
- 创建所有索引和约束,以及
- 提交事务