PostgreSQL忘记输入where条件update更新整张表的解决办法

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

虽然出现这个错误很挫,但有时候还是会被你或者你的同事碰到。为了避免这个错误,PostgreSQL数据库中可以通过触发器来解决,这里用的是plpgsql 。

1、修改postgresql.conf配置

增加:custom_variable_classes = 'limits'
重新加载:pg_ctl reload

2、创建触发器函数

CREATE OR REPLACE FUNCTION zero_counter()RETURNS TRIGGERLANGUAGE plpgsqlAS
$BODY$
DECLARE
BEGINPERFORM set_config('limits.test', '0', true);IF TG_OP = 'UPDATE' THENRETURN NEW;END IF;RETURN OLD;
END;
$BODY$;
CREATE OR REPLACE FUNCTION limit_modifications()RETURNS TRIGGERLANGUAGE plpgsqlAS
$BODY$
DECLAREi INT4;
BEGINi := current_setting('limits.test')::INT4 + 1;PERFORM set_config('limits.test', i::TEXT, true);IF i > 5000 THENRAISE EXCEPTION '% of more than 5000 row is forbidden.', TG_OP;END IF;IF TG_OP = 'UPDATE' THENRETURN NEW;END IF;RETURN OLD;
END;
$BODY$;

3、测试

forummon=# create table test as select i as id, 'password for: ' || i as pass from generate_series(1,10000) i;
forummon=# CREATE TRIGGER zero_counter BEFORE UPDATE OR DELETE ON test FOR EACH STATEMENT EXECUTE PROCEDURE zero_counter();
CREATE TRIGGER
forummon=# CREATE TRIGGER limit_modifications BEFORE UPDATE OR DELETE ON test FOR EACH ROW EXECUTE PROCEDURE limit_modifications();
CREATE TRIGGER
forummon=# \d+ test Table "public.test"Column | Type | Modifiers | Storage | Stats target | Description 
--------+---------+-----------+----------+--------------+-------------id | integer | | plain | | pass | text | | extended | | 
Triggers:limit_modifications BEFORE DELETE OR UPDATE ON test FOR EACH ROW EXECUTE PROCEDURE limit_modifications()zero_counter BEFORE DELETE OR UPDATE ON test FOR EACH STATEMENT EXECUTE PROCEDURE zero_counter()
Has OIDs: no
forummon=# update test set pass = 'qq' where id<5003 ;
ERROR: UPDATE of more than 5000 row is forbidden.
forummon=# update test set pass = 'qq' where id<5000 ;
UPDATE 4999
forummon=# drop table test ;
DROP TABLE

总结

批量操作的数量限制可以在limit_modifications中修改,切记在update不确定时先select再update。

参考连接:http://www.depesz.com/2007/07/27/update-account-set-password-new_password-oops/

原文地址:http://www.sijitao.net/1996.html

转载于:https://my.oschina.net/u/270810/blog/502000

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/296493.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

视觉开发需要什么程度的数学_角度的概念在视觉上非常直观,但其数学定义并不是那么简单...

角的概念是几何学中最基本的概念之一。当我们研究三角形的性质时&#xff0c;我们自然地建立了三角形的边和角之间的联系。这些联系是在三角学中系统地建立起来的。角是什么&#xff1f;我们如何测量它&#xff1f;虽然角度的概念在视觉上很直观&#xff0c;但它的数学定义却不…

别薅了别薅了!!!再薅就真的被薅秃了!!

▲ 点击查看大家好&#xff0c;超模全新的固定栏目「薅羊毛」上线了&#xff01;既然是薅羊毛&#xff0c;怎么能空着手来&#xff1f;毕竟好用的好吃的&#xff0c;啥都要花钱。与其为那些虚幻的包装价值买单&#xff0c;不如跟着超模君狠狠地薅一把羊毛&#xff0c;「花小钱赚…

GitHub Universe 2021|MS Reactor 邀你共聚年度盛会

关注我们GitHub Universe 2021 将于2021年10月27-28日&#xff08;PDT&#xff09;在线直播&#xff0c;MS Reactor 将与 CSDN 合作进行转播&#xff0c;与你一同观看这场全球开发者盛会。 关于 GitHub UniverseGitHub Universe 是 GitHub 面向全球开发者社区举办的年度重要盛会…

C#中的多线程 - 并行编程 z

原文&#xff1a;http://www.albahari.com/threading/part5.aspx 专题&#xff1a;C#中的多线程 1并行编程Permalink 在这一部分&#xff0c;我们讨论 Framework 4.0 加入的多线程 API&#xff0c;它们可以充分利用多核处理器。 并行 LINQ&#xff08;Parallel LINQ&#xff09…

java数组深拷贝和浅拷贝_java中的深拷贝与浅拷贝(值类型 vs 引用类型)

对象赋值赋值是日常编程过程中最常见的操作&#xff0c;最简单的比如&#xff1a;Student codeSheep new Student(); Student codePig codeSheep;严格来说&#xff0c;这种不能算是对象拷贝&#xff0c;因为拷贝的仅仅只是引用关系&#xff0c;并没有生成新的实际对象&#x…

各大厂抢招WPF,小米这回是下了血本啊...

九银十进入尾声&#xff0c;小米又爆出高薪岗位&#xff1a;35k左右&#xff0c;14薪&#xff0c;招5年左右.NET&#xff0c;要求WPF和自动化( 职位&#xff1a;https://app.mokahr.com/apply/xiaomi/287/#/job/523278c0-c504-4cdc-bb88-28c1b101ac76)。今年招WPF的大厂太多了&…

你永远都不知道你老公可以多幼稚......

1 爸爸带女儿&#xff01;两个幼稚鬼▼2 常州一小区提醒防疫四种语言切换无压力▼3 我知道了&#xff01;他的门牙肯定有条缝▼4 狗子OS&#xff1a;今天栏杆和木棍必须要断一个▼5 掀起你的假发来让我帮你擦擦汗▼6 干啥啥不行&#xff0c;吃饭第一名▼7 一看就是亲妈&…

没有女朋友,可能是因为你数学不好

全世界只有3.14 % 的人关注了爆炸吧知识孔子和耶稣曾说过&#xff1a;初恋无限好。回想起青涩的大学时光&#xff0c;告别了高中时代紧张的学习氛围和父母、老师的谆谆告诫&#xff0c;爱情也不再是伊甸园里的禁果。关于爱情的开展和维系&#xff0c;在Levinger&#xff08;198…

C#10,带来了Date和Time类型

C#10引入了日期DateOnly&#xff0c;时间TimeOnly&#xff1a;//从DateTime转换 Console.WriteLine(DateOnly.FromDateTime(DateTime.Now)); //从字会串转换 Console.WriteLine(DateOnly.Parse("2021-10-23")); //从0001-01-01到现在的天数 Console.WriteLine(DateOn…

数据可视化----我在寻找一款类似vfp或是access这样自带可视化风格的数据库或是键盘数据库...

我在寻找一款类似vfp或是access这样自带可视化风格的数据库或是键盘数据库影响redis,mongodb今后发展的我也认为是一些可视化工具的支持http://blog.xiqiao.info/tag/data-visualization

AgileConfig 1.5 发布 - 支持多环境配置

AgileConfig 从发布到现在&#xff0c;收到不少同学的 issue 说需要多环境的支持。也就是一个应用在不同的环境下可以配置不同的配置项。这是一个非常有用的功能&#xff0c;就跟我们开发的时候会设置多个 appsettings.json 文件一样&#xff0c;比如 appsettings.development.…

知乎高赞:哪些事坚持做3个月就会有巨大改变?

全世界只有3.14 % 的人关注了爆炸吧知识知乎上有个高赞问题&#xff1a;有哪些书看完后&#xff0c;会让人后悔没早看到&#xff1f;答案各有不一、包罗万象。但有一点&#xff0c;大家达成了共识&#xff1a;要多读书。人生漫长&#xff0c;而我们都不会是一成不变的&#xff…

clover 主题_Clover主题更换

小白前言今天,黑果小白来教大家更换自己clover引导的 主题 ,相信大家看了这么久的主题 ,应该也厌倦了吧,换一个主题,增加一下新鲜度,废话不多说,上教程!更换前的准备要想更换主题&#xff0c;你就必须得有主题可以更换&#xff0c;没有主题&#xff0c;神马都是浮云&#xff01…

IOS使用Auto Layout中的VFL适配

做登录页面,之前做都是用frame做,今天想着用Auto Layout中的VFL来做。觉得做的效果还是可以的(自恋一下下)。 首先看下效果图和标记图 自己在做的过程中也遇到了好多问题,不过也一个一个的自己解决了 1.子视图居中的问题 上一博客我也写了,由于指定了视图的宽度高度,想让视图居…

左手菲尔兹右手突破奖,这个中国女婿其实是英国贵族?拿到300万奖金后他这样说……...

全世界只有3.14 % 的人关注了爆炸吧知识如果说科学界里高大上的奖项&#xff0c;你还是只能想到诺贝尔&#xff0c;菲尔兹&#xff0c;那可能真的是out了。毕竟现在都0202年了。少年&#xff0c;突破奖了解一下&#xff1f;作为有马云&#xff0c;马化腾&#xff0c;还有俄罗斯…

理财平台架构分析

一个理财平台可以从不同的维度来看。对于一个消费者来说&#xff0c;最宏观的看法&#xff0c;P2P公司的理财平台相当于一个中介&#xff0c;一边用于对接用户&#xff0c;一边用于对接产品提供商。这个中介系统负责用户和产品提供者之间的交互。对于一个P2P理财公司来说&#…

mysql数据压缩存储_压缩文本,然后存储在mysql数据库中

I am developing a web application using php and MySQL. I am compressing the text using gzcompress() php function before storing in MySQL database / storing compressed form of text in database. My Question is that is this OK? to store compressed form? Or …

Abp VNext 集成sharding-core 分表分库

ShardingCore 易用、简单、高性能、普适性&#xff0c;是一款扩展针对efcore生态下的分表分库的扩展解决方案,支持efcore2的所有版本,支持efcore2的所有数据库、支持自定义路由、动态路由、高性能分页、读写分离的一款组件&#xff0c;如果你喜欢这组件或者这个组件对你有帮助请…

引热议!多所高校明文规定:不再给部分全日制研究生安排宿舍

全世界只有3.14 % 的人关注了爆炸吧知识本文转自募格学术。近日&#xff0c;高校宿舍问题频发。矛盾点基本都集中在宿舍加塞人&#xff0c;宿舍环境不好&#xff0c;为了迎接新生强制老生搬宿舍但宿舍环境一言难尽等...... 不过好歹也都算解决了研究生住宿的问题。但近日&#…

Unity 游戏开发技巧集锦之使用忍者飞镖创建粒子效果

Unity 游戏开发技巧集锦之使用忍者飞镖创建粒子效果 使用忍者飞镖创建粒子效果 游戏中&#xff0c;诸如烟、火、水滴、落叶等粒子效果&#xff0c;都可以使用粒子系统&#xff08;particle system&#xff09;来实现。例如&#xff0c;《明朝传奇》中的篝火&#xff0c;如图2-3…