首页
关于
Search
1
在投射和录制时显示敏感信息写给TeamViewer,anydesk,向日葵
8,614 阅读
2
sublime 3155-3175 LICENSE
7,910 阅读
3
mysql存储过程&时间累加插入
7,753 阅读
4
永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。
4,486 阅读
5
mysql-workbench中duration fetch的含义
4,460 阅读
ubuntu
linux
sublime
php
mysql
JS
CSS
其他
chrome
redis
登录
Search
标签搜索
mysql
curl
grep
journalctl
rename
You can't specify target table
only_full_group_by
Sub-process
警示
dropbox
mtr
curl抓取重定向
floor
intval
ceil
round
pixmap
adwaita
date.utc
gmmktime
五好的Book
累计撰写
194
篇文章
累计收到
31
条评论
首页
栏目
ubuntu
linux
sublime
php
mysql
JS
CSS
其他
chrome
redis
页面
关于
搜索到
2
篇与
的结果
2023-12-22
临时表的用法之一
对应的错误信息:{message type="error" content=" Error Code: 1093. You can't specify target table 'a' for update in FROM clause"/}SQL语句:update arc a set title=(select title from arc where id=a.cpid) where bid=1 limit 600;我的意图是 更新一本书的章节标题,标题取之与 arc表中另外一本书的章节标题,运行即报上面的错误,{lamp/}错误原因是:MySQL 不允许在 UPDATE 查询中直接引用正在被更新的表,以避免潜在的数据一致性问题。{lamp/}一番操作后得到的解决方案是 临时表法,解决思路:把需要的数据存入到临时表,这样就不存在引用同一张表的问题了。CREATE TEMPORARY TABLE temp_table AS SELECT id,title FROM arc WHERE bid = 2; update arc a set title=(select title from temp_table where id=a.cpid) where bid=1 limit 600;执行成功后再把创建的临时表删除 DROP TEMPORARY TABLE IF EXISTS temp_table;
2023年12月22日
19 阅读
0 评论
0 点赞
2018-07-25
mysql 更新/删除 同表条件子查询的错误解决之道
场景:我有一个表 table 记录扣除积分的记录id aid fen 1 2 10 2 2 10 3 2 10 4 3 10 5 3 10 很明显 aid 为 2 的 重复扣除了2次 aid 为 3的重复扣了1次那么现在我们来补救下,把多余的记录删除然后把多扣除的补回.delete from table where id not in(select id from talbe group aid) ; 乍一看这个语句没什么问题(有网友反馈说:mssql,oracle 没有问题),但是执行后其实会报这个错误的You can't specify target table 'table' for update in FROM clause为了避免这个错误,我们还需要再套一个子查询 如:delete from table where id not in(select id from (select id from talbe group aid) a) 这样写了之后 就顺利执行了,这个方法同样对update 的类似场景有效.
2018年07月25日
783 阅读
0 评论
0 点赞