mysql - 目标表不可更新错误

标签 mysql insert-update

我需要运行这个查询:

UPDATE (
   SELECT r.* 
   FROM booked r 
   INNER JOIN (
      SELECT a.st_code as from_t
           , b.st_code as to_t 
      FROM `stops_at` a 
      CROSS JOIN `stops_at` b 
      WHERE (a.stop_no < b.stop_no) 
        and (a.train_no = b.train_no) 
        and (a.train_no = '11280')
      ) new 
   ON (r.st_from = new.from_t) 
     and (r.st_to = new.to_t)
     and r.date = '2013-04-16'
   ) temp 
SET temp.seat_ac = temp.seat_ac-5

但是在执行时会报错:

#1288-UPDATE 的目标表临时不可更新

有什么解决办法吗?

最佳答案

我认为您的 UPDATE 语法不正确。看看这是否有效:

UPDATE booked r
INNER JOIN (
   SELECT a.st_code as from_t
        , b.st_code as to_t 
   FROM `stops_at` a 
   CROSS JOIN `stops_at` b 
   WHERE (a.stop_no < b.stop_no) 
     and (a.train_no = b.train_no) 
     and (a.train_no = '11280')
   ) new 
ON r.st_from = new.from_t 
  and r.st_to = new.to_t
  and r.date = '2013-04-16' 

SET r.seat_ac = r.seat_ac-5

关于mysql - 目标表不可更新错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16004750/

相关文章:

mysql - select-table sql自动更新(触发)

PHP和SQL上传错误

MySQL 查询根据前 N 行的值选择一行

php - MYSQL连接数据库错误

php - 如何修复:PDOStatement::execute() 期望参数 1 为数组,在第 64 行 C:\wamp64\www\invoiceTem01-Create.php 中给出的字符串

MySQL 查询 - 使用订单/计数更新字段,但根据另一个字段再次从 1 开始

javascript - mySQL:如果文本列包含黑名单上的项目,则选择行

mysql - Freeradius radacct 空

mysql - 使用 sqlalchemy 检查行和返回 id 的存在很慢

php - 使用 SET 语义参数化插入...重复键更新失败