
MySQL学习笔记:表的备份和重命名、临时表的使用和not int的替换写法
发布日期:2021-05-07 04:23:31
浏览次数:20
分类:精选文章
本文共 2015 字,大约阅读时间需要 6 分钟。
环境
MacBook Pro
备份表并重命名
DROP TABLE IF EXISTS new_table;CREATE TABLE new_table LIKE old_table;INSERT INTO new_table SELECT * FROM old_table;-- 假设第三条SQL检测不通过,就把具体的字段写出来
=-=-=-=-=-=-=-=-=-=2020年8月10日-=-=-=-=-=-=-=start-=-=-=
create table tableName1 as select * from tableName2-- 如果不想同步数据create table tableName1 as select * from tableName2 where 1 = 2
=-=-=-=-=-=-=-=-=-=2020年8月10日-=-=-=-=-=-=-=end-=-=-=
update select
更新时使用临时表,但是该临时表的数据又来自于本表,
这个时候进行更新操作会报错,因为MySQL不允许对本地进行先查询后更新。 变通的方法就是把查询出来的结果再用select包一下,变成一个临时别名表就可以了。=-=-=-=-=-=-=-=-=-=2020年10月15日-=-=-=-=-=-=-=start-=-=-=
今天被下面的SQL搞了很久,总是被you can't specify target table for update in from clause
。 刚开始我是如下写法:
UPDATE xrshop.product AS aaaINNER JOIN ( SELECT we.sn, we.productId FROM warehouse.examination we WHERE we.productId IN ( SELECT p.id FROM xrshop.product AS p WHERE CODE IS NULL AND p.majorCategoryId = 17 ... 省略一些条件 )) AS b SET aaa.`code` = b.snWHERE b.productId = aaa.id
这样总是报错:后来我改为:
UPDATE xrshop.product AS aaaINNER JOIN (select sn, productId from ( SELECT we.sn, we.productId FROM warehouse.examination we WHERE we.productId IN ( SELECT p.id FROM xrshop.product AS p WHERE CODE IS NULL AND p.majorCategoryId = 17 AND p.minorCategoryId IN ( 17005, 17009, 17012, 17013, 17010, 17011, 17015 ) )) AS b ) bbbSET aaa.`code` = bbb.snWHERE bbb.productId = aaa.id
也就是对INNER JOIN
后面的查询结果集,再用select
包一下,然后就可以了;
delete select
如果删除表A的数据,是先从表A中查询出来的,则同理一样,
也是要先用select
包一下: DELETE from xrshop.product WHERE id in (select a.id from (SELECT p.id FROM xrshop.product AS p WHERE CODE IS NULL AND p.majorCategoryId = 17 AND p.minorCategoryId IN ( 17005, 17009, 17012, 17013, 17010, 17011, 17015 )) as a)
not in 优化
因为 not in不走索引,所以不在不得已情况下,就不要使用not in
下面使用 join 来替代not in 做查询
select ID from A where ID not in (select ID from B)
替换为
select A.ID from A left join B on A.ID=B.ID and B.ID is null
或者:
select A.ID from A left join B on A.ID=B.ID where B.ID is null
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月02日 15时24分10秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
apache虚拟主机配置
2021-05-09
光盘作为yum源
2021-05-09
PHP 正则表达式资料
2021-05-09
PHP官方网站及PHP手册
2021-05-09
mcrypt加密以及解密过程
2021-05-09
mysql连续聚合
2021-05-09
go等待N个线程完成操作总结
2021-05-09
消息队列 RocketMQ 并发量十万级
2021-05-09
ReactJs入门教程-精华版
2021-05-09
乐观锁悲观锁应用
2021-05-09
简单说说TCP三次握手、四次挥手机制
2021-05-09
.net Core 使用IHttpClientFactory请求
2021-05-09
多线程之旅(准备阶段)
2021-05-09
Python 之网络式编程
2021-05-09
MySql5.5安装步骤及MySql_Front视图配置
2021-05-09
springmvc Controller详解
2021-05-09
mybatis #{}和${}区别
2021-05-09
Java Objects工具类重点方法使用
2021-05-09