update select的select有不存在的字段也能成功
EmpNo NUMBER(6) PRIMARY KEY,
Deptno NUMBER(6),
Remark VARCHAR2(100)
);
insert into TEMP1 values(1,111,'备注111');
insert into TEMP1 values(2,222,'备注222');
insert into TEMP1 values(3,333,'备注333');
CREATE TABLE TEMP2(
Deptno NUMBER(6),
loc VARCHAR2(10)
);
insert into TEMP2 values(111,'NEWYORK');
insert into TEMP2 values(222,'BEIJING');
insert into TEMP2 values(333,'SHANGHAI');
insert into TEMP2 values(444,'SHENGZHENG');
下面的update查询temp2中字段更新temp1,但temp2中没有empno,remark字段也能执行成功,
deptno值更改了,但empno和remark的值没变;
并且如果select中的不存在的两个字段也不存在temp1中的话执行就会报错。
update TEMP1
set (deptno,empno,remark)=(select deptno,empno,remark from TEMP2 where deptno=222)
where empno=1;
哪位前辈能帮忙分析下这个update是怎么解析执行的...
相关推荐
MySQL中UPDATE与DELETE语句的使用教程
UPDATE 更新 UPDATE SET 语法用于修改更新数据表中的数据。 语法: UPDATE tb_name SET column1 = new_value1,column2 = new_value2,… WHERE definition 该语法将数据表中符合 WHERE 条件的记录中的 column1 的值更新为 new_value1,column2 的值更新为 new_value2 ,以此类推。如果省略 WHERE 条件,则会将表中所有记录的 column 值进行更新。 例子: <?php $conn = @mysql_connect("localhost","root","
SQLServer用存储过程实现插入更新数据示例
实现 1)有相同的数据,直接返回(返回值:0); 2)有主键相同,但是数据不同的数据,进行更新处理(返回值:2); 3)没有数据,进行插入数据处理(返回值:1)。 【创建存储过程】 Create proc Insert_Update @Id varchar(20), @Name varchar(20), @Telephone varchar(20), @Address varchar(20), @Job varchar(20), @returnValue int output as declare @tmpName varchar(20), @tmpTelephone v
2022国家开放大学实验训练3 数据增删改操作
基于实验1创建的汽车用品网上商城数据库Shopping,练习Insert、Delete、TRUNCATE TABLE、Update语句的操作方法,理解单记录插入与批量插入、DELETE与TRUNCATE TABLE语句、单表修改与多表修改的区别。 实验内容: 【实验3-1】插入数据 (1)使用单记录插入Insert语句分别完成汽车配件表Autoparts、商品类别表category、用户表Client 、用户类别表Clientkind 、购物车表shoppingcart、订单表Order、订单明细表order_has_Autoparts、评论Comment的数据插入,数据值自定;并通过select语句检查插入前后的记录情况。 (2)使用带Select的Insert语句完成汽车配件表Autoparts中数据的批量追加;并通过select语句检查插入前后的记录情况。 【实验3-2】删除数据 (1)使用Delete语句分别完成购物车表shoppingcart、订单表Order、订单明细表Order_has_Autoparts、评论Comment的数据删除,删除条件自定;并通过se
Oracle 1z0-051
Oracle 1z0-051
sql数据库实验九 单表查询
SQL数据库实验九题目,比较全面,适用于sql的数据库课程的实验课程的实践操作,有很强的实际操作性。


