2011-05-11 3 views
0

테이블에 데이터를 삽입 할 때 새 레코드의 항목을 기반으로 다른 테이블의 데이터로 테이블을 채울 수 있어야합니다.MYSQL의 삽입시 조회 값

예를 들어, 새 레코드가 생성 될 때 채워지지 않은 latitude라는 테이블이 있습니다.

위도 세부 정보는 'areaid'라는 열과 'latitude'라는 열이있는 영역이라는 테이블에 저장됩니다.

새 레코드에 삽입 된 areaid를 기반으로 올바른 위도로 업데이트 할 영역 테이블의 위도 필드가 필요합니다.

혼란스러운 경우 죄송합니다. 궁금한 점이 있으시면 연락해주십시오.

감사

답변

1

나는 areaidarea 테이블의 고유 또는 기본 키는 것을 가정한다.

REPLACE INTO 또는 INSERT ... ON DUPLICATE KEY UPDATE 중 하나를 사용할 수 있습니다. latitude 테이블에 위도를 유지하려는 경우 트리거를 사용하여 테이블에 삽입 할 때 area 테이블이 업데이트되도록 할 수 있습니다.

CREATE TRIGGER example BEFORE INSERT ON latitude 
    FOR EACH ROW BEGIN 
    REPLACE INTO area (areaid, latitude) VALUES (NEW.areaid, NEW.latitude); 
    END; 
+0

많은 감사의 말을 전했지만 다음과 같은 오류가 발생합니다. – Haribo83

+0

# 1064 - SQL 구문에 오류가 있습니다. – Haribo83

+0

@ Haribo83 실제로'REPLACE INTO'에 대한 문서를 읽지는 않았지만, 더 효율적이기 때문에'INSERT ... ON UP UP KEY UPDATE' 명령을 사용해야합니다. – Neil