错误代码: 1093 You can't specify target table 't_jygz_teachtask' for update in FROM clause

MYSQL执行如下语句报错:

UPDATE
  t_jygz_teachtask
SET
  completed_hours = completed_hours + 1
WHERE id =
  (SELECT
      id
    FROM
      t_jygz_teachtask
    WHERE class_bh = '4')

报错信息如下:

错误代码: 1093
You can't specify target table 't_jygz_teachtask' for update in FROM clause

意思是不能在同一语句中更新select出的同一张表元组的属性值

解决方法:将select出的结果通过中间表再select一遍即可。

UPDATE
  t_jygz_teachtask
SET
  completed_hours = completed_hours + 1
WHERE id =
  (SELECT
    id
  FROM
    (SELECT
      id
    FROM
      t_jygz_teachtask
    WHERE class_bh = '4') temp)

 


http://www.niftyadmin.cn/n/737008.html

相关文章

使用thymeleaf模板引擎实现国际化的小例子

1.首先添加国际化配置文件,设置需要国际化的属性和值 2.配置引用国际化文件 3.使用thymeleaf模板th:href属性为链接设置请求,l表示Locale 4.自己编写一个LocaleResolver区域解析器 5.将LocaleResolver注入到spring容器中来就可以使用了 实现效果:

oracle将日期格式化为“yyyy年mm月dd日”的形式

oracle将日期格式化为“yyyy年mm月dd日”的形式 最初采用裁剪的形式进行拼接,如下: select to_char(sysdate,yyyy)||年||to_char(sysdate,MM)||月||to_char(sysdate,dd)||日 from dual后来觉得麻烦,总感觉ORACLE应该可以直接转yyyy年MM月dd日…

NoSQL数据库的四大分类

KV键值对(redis、tair、memcache) 文档型数据库(MongoDB、CouchDB) 列存储数据库(HBase、Cassandra、分布式文件系统) 图关系数据库(专注于构建关系图谱 Neo4J、InfoGrid)

在分布式数据库中CAP原理+BASE

1.传统的ACID是什么? A(Atomicity)原子性 原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个…

Redis五大数据类型及命令

默认16个数据库,类似数组下表从零开始,初始默认使用零号库,默认端口是6379 Select:命令切换数据库 Dbsize:查看当前数据库的key数量 FlushDB:清空当前库 FlushAll:清空所有库 统一密码管理…

Redis配置文件redis.conf详解

Linux下的配置文件单独考拷贝出来进行操作,这是一个好习惯! Units单位: 配置大小单位,开头定义了一些基本的度量单位只支持bytes,不支持bit对大小写不敏感 INCLUDES包含: 和Struts2配置文件类似,可以通过includes包含&#xff…

Redis持久化一一RDB

Redis可以实现数据的持久化存储,即将数据保存到磁盘上。 Redis的持久化存储提供两种方式:RDB与AOF。RDB是默认配置。默认是关闭AOF模式的,AOF需要手动开启 RDB(Redis DataBase):在指定的时间间隔内将内存中的数据集快…

Redis持久化一一AOF

AOF(Append Only File):以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis重启的话就根…