2012-09-10 44 views
0

因此,我需要从我的表中选择一个值,并稍微修改它以在插入时用作同一表中新行中的值。请看下图:Mysql从目标表中插入值

INSERT INTO reservationbody(
    reservationid, 
    driverid, 
    tripnumber, 
    fromlocation, 
    tolocation 
) 
VALUES(
    1, 
    2, 
    (
     SELECT 
      MAX(tripnumber) + 1 
     FROM reservationbody 
     WHERE reservationid = 1 
    ), 
    'here', 
    'there' 
) 

,我发现了以下错误:

You can't specify target table 'reservationbody' for update in FROM clause

我看了一下其他问题,并找到了很多的问题,对这个错误,但他们似乎都约更新和删除,并且都需要已经存在的PK值。没有涉及插入。

基本上我期待在这里的是,如果SELECT MAX(tripnumber) FROM reservationbody where reservationid = 1返回的值,然后插入应该添加一个新行的一个tripnumber值5

任何人都可以建议我怎么能做到这一点?

回答

2

您是否尝试过(我知道你可以在MS SQL做到这一点):

+0

是的,这也适用于MySQL的,因为v4.0.14。 – eggyal

+0

谢谢:)有进入日期格式的问题(得到了超出范围'错误1264'),但它被排序 – Ortund