postgresql - 开始...每 50 行提交一次

标签 postgresql

我有一个 500,000 行的 sql 脚本。

update users set region_id = 9814746 where id = 101 and region_id is null;
update users set region_id = 9814731 where id = 102 and region_id is null;
update users set region_id = 3470676 where id = 103 and region_id is null;
...
....

我需要能够使用 begin...commit 每 50 行生成一个脚本。 我该怎么做呢? 我将在 pg-admin 中运行它。

谢谢, 沙拉多夫

最佳答案

这可能是一个好的开始:
cat sql.file | perl -e 'i=0;print "begin;\n"; while(<>){print;i++;if(i % 50 == 0){print "end;\nbegin;\n";}}print "end\n";' > outputsql.file

关于postgresql - 开始...每 50 行提交一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1307735/

相关文章:

ruby-on-rails - Ruby on Rails/PostgreSQL - 启动服务器时库未加载错误

postgresql - 如何比较两个表的坐标并在第一个表的列中写入 true 或 false?

postgresql - 如何在维护数据的同时升级 docker 容器中的 postgres? 10.3 到最新的 10.x 或 12.x

ruby-on-rails - 将 Sqlite3 更改为 Postgresql Rails

postgresql - 如何从 postgresql 中的 plpgsql 函数返回的 SELECT 查询中提取字符串(或文本)?

ruby-on-rails - 向资源添加数组列

postgresql - 如何为标准 jpa2 (hibernate) 创建自定义谓词?

postgresql - 为什么 PostgreSQL 中没有 SELECT 权限时 UPDATE 权限不起作用?

Python/Flask : How to tell how long a user spends on a page?(数据输入/时间日志应用程序)

python - 如果表为空则执行 INSERT 多个值 POSTGRES