2012-09-10 4 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 = 14의 값을 반환하는 경우 다음 삽입 tripnumber 값으로 새 행을 추가해야한다는 것입니다 5

은 누구나 제안 할 수 나는이 작업을 수행 할 수있는 방법 ?

답변

2

당신이 (당신이 MS SQL에서이 작업을 수행 할 수 있습니다 알고) 노력했다.
+0

그래,이 또한 v4.0.14 이후 MySQL을 작동합니다 – eggyal

+0

감사합니다 :) 날짜 형식이 (범위 '오류 1264'를 벗어났습니다.) 문제가 있었지만 정렬되어 있습니다. – Ortund

관련 문제