【问题标题】:Target table not Updatable error目标表不可更新错误
【发布时间】:2013-04-06 22:50:33
【问题描述】:

我需要运行这个查询:

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 的目标表 temp 不可更新

有什么解决办法吗?

【问题讨论】:

    标签: mysql insert-update


    【解决方案1】:

    我认为您的 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
    

    【讨论】:

      猜你喜欢
      • 2021-10-13
      • 1970-01-01
      • 2017-12-13
      • 2012-07-05
      • 1970-01-01
      • 1970-01-01
      • 2018-01-26
      • 2015-09-15
      • 2017-02-03
      相关资源
      最近更新 更多