当前位置: 首页 > news >正文

网站建设定制公司推荐做网站考虑的方面

网站建设定制公司推荐,做网站考虑的方面,济南市莱芜区,图片链接生成器在线简介 在数据库中进行增删改查比较常见#xff0c;经常会用到update的使用。但是在近期发现update在oracle和postgresql使用却有一些隐形区别#xff0c;oracle 在执行update语句的时候set 后面必须跟着1对1的数据关联而postgresql数据库却可以一对多#xff0c;这就导致数据…简介 在数据库中进行增删改查比较常见经常会用到update的使用。但是在近期发现update在oracle和postgresql使用却有一些隐形区别oracle 在执行update语句的时候set 后面必须跟着1对1的数据关联而postgresql数据库却可以一对多这就导致数据在被新的时候出现不确定性。 目录 简介 案列 oracle postgresql 解读 postgresql官网解释 update语法分享 update对分区表使用的影响 案列 oracle 以下oracle数据库中的测试代码 drop table test1;create table test1 (id number ,var varchar2(2) ) ;insert into test1 values(1,2); select * from test1;update test1 tset var (select tt.varfrom (select 1 id, 3 varfrom dualunion allselect 1, 4from dual) ttwhere tt.id t.id);select * from test1; postgresql 以下是postgresql数据库中的测试代码 drop table if exists test1;create table test1 (id int ,var varchar ) ;select * from test1;insert into test1 values(1,2);update test1 t set vartt.var from (select 1,generate_series(3,4)::varchar ) as tt(id,var) where tt.id t.id;select * from test1; 解读 在两个数据库中都是新建了一张表其数据只有12其中id:1是作为set的匹配字段 替换新数据表中,其ID为1的值有两个在set进行匹配的时候就会发生一对多数据发散的情况此时oracle数据库就会报错 select 1 id, 3 varfrom dualunion allselect 1, 4from dual 一对多数据发散的情况此时oracle数据库就会报错。在oracle数据库中是并不允许的。 但是在postgresql数据库中却可以执行并且主表数据库被成功更新成了4. postgresql官网解释 在官网中postgresql是支持set后的一对多匹配的但是具体更新成哪一条数据却是不可控的。 注在日常使用postgresql数据库的时候注意update语句在使用中尽可能有唯一主键进行关联。         其SET后匹配的数据尽可能保证一对一的关联。 update语法分享 WITH [ RECURSIVE ] with_query [, ...] ] UPDATE [ ONLY ] table_name [ * ] [ [ AS ] alias ]SET { column_name { expression | DEFAULT } |( column_name [, ...] ) [ ROW ] ( { expression | DEFAULT } [, ...] ) |( column_name [, ...] ) ( sub-SELECT )} [, ...][ FROM from_item [, ...] ][ WHERE condition | WHERE CURRENT OF cursor_name ][ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ] 此处的RECURSIVE递归语法语法的一个关键字可以对临时表的数据进行聚合算法。 update对分区表使用的影响 在查询这个一对多进行update执行的时候官网还对其分区表的分区键进行update后会不会变更其分区进行了解读 在分区表的情况下更新一行有可能导致它不再满足其所在分区的分区约束。此时如果这个行满足分区树中某个其他分区的分区约束那么这个行会被移动到那个分区。 如果没有这样的分区则会发生错误。在后台行的移动实际上是一次DELETE操作和一次INSERT操作。 在移动的行上的并发UPDATE或DELETE可能会收到序列化失败错误。 假设会话 1 正在分区键上执行UPDATE同时对可访问该行的并发会话 2 在此行上执行UPDATE或DELETE操作。 在这种情况下会话 2 的UPDATE 或 DELETE将检测行移动并引发序列化失败错误该错误始终返回 SQLSTATE 代码40001。 如果发生这种情况应用程序可能希望重试事务。 在通常情况下表没有分区或没有行移动会话 2 将标识新更新的行并执行UPDATE/DELETE在此新行版本中。 请注意虽然行可以从本地分区移动到外表分区如果外数据包装器支持元组路由但它们不能从外表分区移动到另一个分区。
http://www.hkea.cn/news/14500126/

相关文章:

  • 做网站添加本地图片湖北建设网站四库一平台
  • 外贸公司网站多少钱有没有做高仿手表的网站
  • 山东城乡建设部网站首页麻涌做网站
  • 长沙百度做网站多少钱有比wordpress更好的吗
  • 1个月能学好网站开发吗网站关键词收录查询
  • 做的比较好的旅行网站怎样让google收录网站
  • 专业网站建设价格大全公司网站制作定制
  • 微信菜单怎么做微网站东莞网站建设是什么意思
  • 如何加盟网站建设建筑人才网987
  • 教人如何做吃的网站h5源码网
  • 网站的开发技术外贸网络推广哪个好
  • 自助网站能在百度上搜到么简要说明网站建设的基本流程
  • 合肥大型网站建设公司一个公司做2个产品网站怎么做
  • 对网站建设的讲话wordpress ip 改变
  • 邢台企业网站建设价格西安seo外包服务
  • 公司网站维护怎么弄公司网站的定义
  • 建设银行官方网站云服务中心做网站是
  • 旅游建设网站wordpress 登录 404
  • 广东建站中国互联网金融协会官网
  • 焦作网站建设费用城市建设理论研究官方网站
  • 做网站设计前景怎么样网站如何做区域屏蔽代码
  • 做网站要切图吗有了网站源代码
  • 网站建设zg886seo关键词推广优化
  • 门户网站建设好如何维护wordpress修改端口
  • 庆元县住房和城乡建设局网站网站托管 建设方案
  • 动态表白网站制作站长之家查询网站
  • 建立网站需要注意事项携程网网站规划建设特点
  • 闲鱼网站如何赚钱高端的镇江网站建设
  • 深圳网站建设推荐成都便宜网站建设
  • 制作ppt的网站中国世界排名前300的大学