对于同一张表修改一批数据,等于另一批数据;或者对于两张表,修改A表一批数据,等于B表的一批数据。
oracle在这方面做到很好,SQL语法也比较简单,但Mysql做的不好,不是不能做,只是比较麻烦。
首先准备两张表:
emp: empno,ename,deptno,sal;(含义为员工编号,姓名,部门编号,工资)
myemp:myid,myname,deptno,sal; (含义为员工编号,姓名,部门编号,工资)
emp.empno 与 myemp.myid关联。
问题:
将emp表中 部门编号为10,主键empno等于myemp表中的myid,所有人员的【姓名,工资】批量同步过去,只能写一个语句。
下面是测试用的脚本:
SQL语句:
create table emp (
empno int(4),
ename varchar(50),
deptno varchar(5),
sal int(8)
)
create table myemp (
myid int(4),
myname varchar(50),
deptno varchar(5),
sal int(8)
)
)
insert into emp(empno,ename,deptno,sal) values ('1', '张三', '10', 1000);
insert into emp(empno,ename,deptno,sal) values ('2', '李四', '10', 2000);
insert into emp(empno,ename,deptno,sal) values ('3', '王五', '10', 3000);
insert into emp(empno,ename,deptno,sal) values ('4', '赵六', '20', 4000);
insert into myemp(myid,myname,deptno,sal) values ('1', 'zhangsan', '10', null);
insert into myemp(myid,myname,deptno,sal) values ('2', 'lisi', '10', null);
insert into myemp(myid,myname,deptno,sal) values ('3', 'wangwu', '10', null);
insert into myemp(myid,myname,deptno,sal) values ('4', 'zhaoliu', '20', 4000);
最初想法是:
update myemp m
set m.sal = (select e.sal from emp e where e.deptno >'10' and m.myid = e.empno),
m.myname = (select e.ename from emp e where e.deptno >'10' and m.myid = e.empno);
实际上,这样mysql会报错。
Error Code : 1093
You can't specify target table 'a' for update in FROM clause
意思是,要修改的表,就不能在后面子查询语句中使用。
所以正确的方法:
update myemp as a inner join emp as b on a.myid=b.empno
set a.sal= b.sal,a.myname = b.ename
where b.deptno ='10'
- 浏览: 290941 次
- 性别:
- 来自: 安徽
最新评论
-
fanjf:
因为不是太懂,所以摘录!
DataStage---向目的库插入时出现问题:MLOG$ -
fanjf:
oracle 位图索引:位图索引: 解决某一表数据很多,但某一 ...
【转】 mysql 添加列,修改列,删除列。 -
fanjf:
创建索引:CREATE TABLE mm (m1 CHAR(1 ...
【转】 mysql 添加列,修改列,删除列。 -
fanjf:
查询mysql 的表emp 的约束:
SELECT * FR ...
【转】 mysql 添加列,修改列,删除列。 -
fanjf:
为什么 update 不报错,结果为空?
关于MYSQL 检查check约束
相关推荐
但是,如果你想更新多行数据,并且每行记录的各字段值都是各不一样,你会怎么办呢?刚开始你可能会想到使用循环执行多条UPDATE语句的方式,就像以下的python程序示例: for x in xrange(10): sql = ''' UPDATE ...
使用人员可以指定迁移数据库类型 如:(orcal,sqlServer,csv 迁移至mysql) 2.在迁移数据库时,可以只迁移指定字段. 3.开发多任务的平台,按权重去执行任务,如:权重为1,1,2,3,4 那么1,1的权重一起执行,执行完毕后2 ...
mysql快速批量生成执行脚本 使用一些日常sql,快速 简单的创建一些批量生成脚本 如:批量修改字段类型 或者在所有表中创建添加字段脚本 数据迁移或者批量生成脚本sql使用
MYSQL中批量替换某个字段的部分数据,具体介绍如下所示: 1.修改字段里的所有含有指定字符串的文字 UPDATE 表A SET 字段B = replace(字段B, 'aaa', 'bbb') example: update table set url= replace(url, 'aaa', '...
提高SQL的插入,更新,删除和合并性能,并克服SqlBulkCopy的限制稽核区分大小写实体数据源/ Lambda映射产值和更多...可扩展SQL Server-基准运作方式1,000行10,000行100,000行1,000,000行插6毫秒25毫秒200毫秒2,000...
本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考。对于脚本输出的结果美化,需要进一步完善和调整。以下为具体的示例及其方法。 1、将SQL语句直接嵌入到shell脚本文件中 代码...
sunwe(云飞扬)转制 1,数据来源于QQip数据库纯真版. 2,本数据包包含全面,包括...3,另外,本数据包另附转化好的 纯真ip数据文本文件.(已经经过空格批量替换和插入间隔符',' 这样可以方便直接导入其他类型的数据库)
1.数据库的创建修改批量插入等基本操作及sql文件 2.数据表的约束、查询及sql文件 3.SQL server函数及sql文件 常量变量函数 4.关于cascade使用的sql文件 删除重复行只留一行的sql文件 5.数据表操作的习题课1和2的sql...
今天我要介绍的是相对简单的批量修改数据库中表前缀的方法,适用于修改数据库中相同前缀且数据表较多的情况。 此例中假定修改名为“www_sdck_cn”的数据库中前缀为“phpcms_”的表,并将所有符合条件表的前缀修改为...
13-批量修改MySQL服务引擎的多种方案 14-有关MySQL服务存储引擎的面试题等说明 第十一部 MySQL读写分离开发实现及软件实现-物理备份-高可用(已经包含有5节视频+文档资料) 01-amoeba读写分离实现技术分享.avi 02-...
2、部分的 SqlParameter 修改为 MySqlParameter 3、获取前几行数据时,修改为 limit 4、参数赋值时,从@修改为? 动软代码必须修改 “工具”-“选项”弹出窗 后,点击 ”代码生成设置“-”字段类型映射“-”参数...
实现了Mysql数据库的访问,这个软件里比较特殊的是,没有使用MFC中list来显示多条数据,是用其他控件,Edit、Combo BOx等来显示数据,每次只操作一条数据记录,当然想需要批量添加数据和显示数据只需稍加修改,...
50.MySQL高级_批量插入数据脚本.avi 49.MySQL高级_慢查询日志.avi 48.MySQL高级_为排序使用索引OrderBy优化.avi 47.MySQL高级_in和exists.avi 46.MySQL高级_小表驱动大表.avi 45.MySQL高级_索引优化答疑...
mysql语法大全总结,内含DDL,DML,DQL,DCL等语句,可作为工作学习的小字典,随时查看学习,查询所有数据库、查询当前数据库、创建数据库、删除数据库、切换数据库、查询当前数据库的所有表、查看指定表结构、查询指定...
尚硅谷_MySQL高级_批量插入数据脚本 · 51.尚硅谷_MySQL高级_用Show Profile进行sql分析 · 52.尚硅谷_MySQL高级_全局查询日志 · 53.尚硅谷_MySQL高级_数据库锁理论概述 · 54.尚硅谷_MySQL高级_读锁案例讲解 ...
鉴于MySQL数据库的流行与强大,决定多学习使用。...提供添加、修改、删除用户功能,同时,为了测试MySQL数据库的访问性能,提供批量数量添加测试功能,如批量添加10000个用户,看看数据库的执行效率。界面作如下布
下面的代码只是批量插入数据,事实上,插入数据、更新数据、删除数据等可以混合一起执行。查询时使用该函数,读取数据有点不太一样,具体参考如下代码: <?php //1、创建数据库连接对象 $mysqli = new MySQLi(...
oracle向mysql建表语句的迁移。 直接表结构的生成sql脚本
5:能够批量执行SQL语句。 6:支持将数据,表结构,视图导成SQL或CSV。 7:能够外键关联打印数据库概要。 8:能够查看进程和关闭进程。 9:能够查看用户和权限并修改。 10:管理事件和表格...