postgresql 两表关联更新操作
我就废话不多说了,大家还是直接看代码吧~
UPDATE 要更新的表 SET 字段1 = cqt.字段1, 字段2 = cqt.字段2, FROM 数据来源表 cqt WHERE 要更新的表.bsm = cqt.bsm
补充:Postgresql 连表更新字段语法 update
下面这段sql本来目的是想更新条件下的数据,可是这段sql却更新了整个表的数据。sql如下:
UPDATE tops_visa.visa_order SET op_audit_abort_pass_date = now() FROM tops_visa.visa_order as t1 INNER JOIN tops_visa.visa_visitor as t2 ON t1. ID = t2.order_id WHERE t1.op_audit_abort_pass_date IS NULL AND ( t2. STATE = 'pch_abort_op_audit_pass' OR t2. STATE = 'pvd_abort_op_audit_pass' )
正确的写法有多种,如下方法也能够实现正确的数据库修改:
UPDATE tops_visa.visa_order as t1 SET op_audit_abort_pass_date = now() FROM tops_visa.visa_visitor AS t2 WHERE t1.ID = t2.order_id AND t1.op_audit_abort_pass_date IS NULL AND ( t2. STATE = 'pch_abort_op_audit_pass' OR t2. STATE = 'pvd_abort_op_audit_pass' )
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
sqoop 实现将postgresql表导入hive表
使用sqoop导入数据至hive常用语句 直接导入hive表 sqoop import --connect jdbc:postgresql://ip/db_name --username user_name --table table_name --hive-import -m 5 内部执行实际分三部,1.将数据导入hdfs(可在hdfs上找到相应目录),2.创建hive表名相同的表,3,将hdfs上数据传入hive表中 sqoop根据postgresql表创建hive表 sqoop creat
-
基于postgresql数据库锁表问题的解决
查询是否锁表了 select oid from pg_class where relname='可能锁表了的表' select pid from pg_locks where relation='上面查出的oid' 如果查询到了结果,表示该表被锁 则需要释放锁定 select pg_cancel_backend(上面查到的pid) 补充:PostgreSQL 解决锁表.死锁问题 1.-- 查询ACTIVITY的状态等信息 SELECT T .PID, T.STATE, T.QUERY, T.WA
-
postgreSQL数据库 实现向表中快速插入1000000条数据
不用创建函数,直接向表中快速插入1000000条数据 create table tbl_test (id int, info text, c_time timestamp); insert into tbl_test select generate_series(1,100000),md5(random()::text),clock_timestamp(); select count(id) from tbl_test; --查看个数据条数 补充:postgreSQL 批量插入10000条数据
-
Postgresql - 查看锁表信息的实现
查看表锁信息,是DBA常用的脚本之一. 实验环境: CentOS 7 PG 10.4 先通过A窗口执行 mytest=# begin; BEGIN mytest=# update t1 set col1 = 'a' where id =1 ; UPDATE 1 mytest=# 打开B窗口执行 mytest=# begin; BEGIN mytest=# update t1 set col1 = 'b' where id =2; UPDATE 1 mytest=# update t1 set c
-
sqoop读取postgresql数据库表格导入到hdfs中的实现
最近再学习spark streaming做实时计算这方面内容,过程中需要从后台数据库导出数据到hdfs中,经过调研发现需要使用sqoop进行操作,本次操作环境是Linux下. 首先确保环境安装了Hadoop和sqoop,安装只需要下载 ,解压 以及配置环境变量,这里不多说了,网上教程很多. 一.配置sqoop以及验证是否成功 切换到配置文件下:cd $SQOOP_HOME/conf 创建配置环境文件: cp sqoop-env-template.sh sqoop-env.sh 修改配置文件:co
-
Postgresql锁机制详解(表锁和行锁)
表锁 LOCK [ TABLE ] [ ONLY ] name [ * ] [, ...] [ IN lockmode MODE ] [ NOWAIT ] lockmode包括以下几种: ACCESS SHARE | ROW SHARE | ROW EXCLUSIVE | SHARE UPDATE EXCLUSIVE| SHARE | SHARE ROW EXCLUSIVE | EXCLUSIVE | ACCESS EXCLUSIVE LOCK TABLE命令用于获取一个表锁,获取过程将阻塞一直
-
postgresql 两表关联更新操作
我就废话不多说了,大家还是直接看代码吧~ UPDATE 要更新的表 SET 字段1 = cqt.字段1, 字段2 = cqt.字段2, FROM 数据来源表 cqt WHERE 要更新的表.bsm = cqt.bsm 补充:Postgresql 连表更新字段语法 update 下面这段sql本来目的是想更新条件下的数据,可是这段sql却更新了整个表的数据.sql如下: UPDATE tops_visa.visa_order SET op_audit_abort_pass_date = now()
-
Mysql多表关联更新方式
目录 Mysql多表关联更新 Mysql多表关联update 总结 Mysql多表关联更新 日常的开发中一般都是写的单表update语句,很少写多表关联的update. 在MySQL中我们有几种方法可以做到多表关联更新: 在两张表之间做关联,可以更新关联的多张表 update biao1,表2 set 表1.列名=表2.列名 --外键或关联字段 where 更新条件:--例如:表1.列名=表2.列名,或字段aa>1等等 通过 INNER JOIN,可以更新关联的多张表 update 表1 i
-
MongoDB多表关联查询操作实例详解
本文实例讲述了MongoDB多表关联查询操作.分享给大家供大家参考,具体如下: Mongoose的多表关联查询 首先,我们回忆一下,MySQL多表关联查询的语句: student表: calss表: 通过student的classId关联进行查询学生名称,班级的数据: SELECT student.name,student.age,class.name FROM student,class WHERE student.classId = class.id Mongoose多表联合查询(还是以众所
-
SQL update 多表关联更新的实现代码
实现多表更新,尤其是A表和A的子表B表数据更新,下面是例子 有A.B张表,其记录如下: A表 c1 c2 -------------- 1 a1 2 a2 3 a3 8 a8 B表 c1 c3 -------------- 1 b1 2 b1 3 b3 10 b10 A.c1与B.c1相等,用一条sql语句,实现A.c2的值更新为B.c3 -----------------
-
图文详解MySQL中两表关联的连接表如何创建索引
本文介绍了MySQL中两表关联的连接表是如何创建索引的相关内容,分享出来供大家参考学习,下面来看看详细的介绍: 问题介绍 创建数据库的索引,可以选择单列索引,也可以选择创建组合索引. 遇到如下这种情况,用户表(user)与部门表(dept)通过部门用户关联表(deptuser)连接起来,如下图所示: 表间关系 问题就是,在这个关联表中该如何建立索引呢? 针对该表,有如下四种选择: 针对于user_uuid建立单列索引idx_user 针对于user_dept建立单列索引idx_dept 建立组合
-
postgresql 实现多表关联删除
t_aj_ajjbxx t_aj_ajfbxx t_xt_dwxx 两表关联,删除一张表中数据 delete from db_lx.t_aj_ajfbxx ajfb USING db_lx.t_xt_dwxx dw where dw.c_bh=ajfb.c_ssdw and dw.c_sfbh='65'; 只有t_aj_ajfbxx 表中数据被删除 三表关联,删除一张表中数据 delete from db_lx.t_aj_ajjbxx ajjb USING db_lx.t_aj_ajfbxx a
-
Oracle两张表关联批量更新其中一张表的数据
方法一(推荐): UPDATE 表2 SET 表2.C = (SELECT B FROM 表1 WHERE 表1.A = 表2.A) WHERE EXISTS (SELECT 1 FROM 表1 WHERE 表1.A = 表2.A); 尤其注意最后的外层where条件尤为重要,是锁定其批量更新数据的范围. 方法二: MERGE INTO 表2 USING 表1 ON (表2.A = 表1.A) -- 条件是 A 相同 WHEN MATCHED THEN UPDATE SET 表2.C = 表1.
-
SQLServer批量更新两个关联表数据的方法
本文实例讲述了SQLServer批量更新两个关联表数据的方法.分享给大家供大家参考,具体如下: 方式1: UPDATE a SET WtNo=b.NO from WT_Task a INNER JOIN WT_BasicInformation b ON a.WtId=b.ID; 方式2: UPDATE a SET a.WtNo=b.NO FROM WT_Task a,WT_BasicInformation b WHERE a.WtId=b.ID; 希望本文所述对大家SQL Server数据库程序
-
Oracle中多表关联批量插入批量更新与批量删除操作
该文章会分为三部分 1.多表关联批量插入 2.多表关联批量更新 3.多表关联批量删除 首先要明白一点,为什么会有批量这一个概念,无非就是数据太多了,在java端把数据查出来然后在按照100-300的批次进行更新太耗性能了,而且写出来的代码会非常的臃肿,所谓好的实现是用最少的,最精简的代码实现需求,代码越少,留给自己犯错误的机会更少. 还有一个知识点就是多表关联,对于查询肯定是可以多表关联的,其实对于除了查询之外也是可以进行多表关联过滤数据的,从而达到在Oracle中查到目标数据即可更新,从而规避
-
php基于数组函数实现关联表的编辑操作示例
本文实例讲述了php基于数组函数实现关联表的编辑操作.分享给大家供大家参考,具体如下: 需求为,在创建学校时,需要添加应用,于是创建了个学校应用关联表,编辑学校并提交时,后台需要判断更新的应用是否为一开始提交的,或是有新的应用提交,有旧的应用删除,简化为数组概括如下 $arr1 = array(1, 2, 4, 5, 6, 9); // 学校应用关联表中一开始的数据 $arr2 = array(3, 4, 5, 7, 8); // 前台更新的数据 /* 两个数组相同的元素,提取不变的元素 Arr
随机推荐
- Mootools 1.2教程 排序类和方法简介
- javascript实现动态模态绑定grid过程代码
- SQl 语句(常见)
- javascript实现yield的方法
- 收集21个DOS常用命令
- oracle impdp network_link参数使用介绍
- c# .net在WEB页中的COOKIES设置技巧
- PHP时间戳与日期之间转换的实例介绍
- Yii净化器CHtmlPurifier用法示例(过滤不良代码)
- yii数据库的查询方法
- window.requestAnimationFrame是什么意思,怎么用
- Linux 常用命令挂载命令详解
- QQ里的强人 签名
- JavaScript和CSS通过expression实现Table居中显示
- jquery Deferred 快速解决异步回调的问题
- jquery ui resizable bug解决方法
- PHP中CURL的几个经典应用实例
- Java concurrency集合之CopyOnWriteArraySet_动力节点Java学院整理
- Android编程实现向SD卡写入数据的方法
- Android使用okHttp(get方式)登录