zoukankan      html  css  js  c++  java
  • mysql:You can't specify target table 'bpm_tksign_data' for update in FROM clause

    UPDATE bpm_tksign_data
    SET iscompleted = 1
    WHERE
        actinstid = '10000002433415'
    AND nodeid = 'SignTask1'
    AND iscompleted = 0
    AND batch = (
        SELECT
            max(a.batch) m
        FROM
            bpm_tksign_data a
        WHERE
            a.actinstid = '10000002433415'
        AND a.nodeid = 'SignTask1'
    );

    这种写法,mysql各个版本都不支持。

    UPDATE bpm_tksign_data
    SET iscompleted = 1
    WHERE
        actinstid = '10000002433415'
    AND nodeid = 'SignTask1'
    AND iscompleted = 0
    AND batch = (
        SELECT
            max(a.batch) m
        FROM
            (SELECT * FROM bpm_tksign_data) a
        WHERE
            a.actinstid = '10000002433415'
        AND a.nodeid = 'SignTask1'
    );

     这种写法,mysql 5.6支持,mysql 5.7不支持。

    UPDATE bpm_tksign_data
    SET iscompleted = 1
    WHERE
        actinstid = '10000002433415'
    AND nodeid = 'SignTask1'
    AND iscompleted = 0
    AND batch = (
        SELECT
            p.m
        FROM
            (
                SELECT
                    max(a.batch) m
                FROM
                    bpm_tksign_data a
                WHERE
                    a.actinstid = '10000002433415'
                AND a.nodeid = 'SignTask1'
            ) p
    );

    这种写法,mysql各个版本都可以支持。

  • 相关阅读:
    HTML_表单
    jabc_DAO
    JDBC 加钱减钱
    JDBC 连接池
    JDBC
    视图序列索引
    【Java8】 lambda 特性讲解
    IntelliJ IDEA 常用快捷键
    Java IO 之 装饰模式
    Java IO 讲解
  • 原文地址:https://www.cnblogs.com/kzfy/p/5253531.html
Copyright © 2011-2022 走看看