2010-08-21 5 views
0

데이터베이스에 table1과 table2라는 두 개의 테이블이 있습니다. 그들은 동일합니다. 그러나 때로는 table1의 데이터를 변경합니다.table2를 php와 mysql을 사용하여 table2의 내용으로 업데이트하는 방법

table1과 update table2의 데이터를 동일하게 복사하려면 어떻게합니까?

나는 REPLACE INTO table2 SELECT * FROM table1을 시도했지만 INSERT처럼 작동하고 기존 행을 업데이트하는 대신 새 행을 만듭니다.

답변

0

REPLACE INTO이 의도 한대로 작동하려면 대상 테이블에 기본 키가 정의되어 있어야합니다. 그렇지 않으면 MySQL은 행이 이미 존재하며 항상 새로운 행을 사용하는지 여부를 판단 할 수 없습니다. 결과적으로 기본 키가없는 테이블의 경우 REPLACE INTO은 정확히 INSERT INTO과 같은 역할을합니다.

또는 UPDATEINSERT 중 하나를 적절한 WHERE (NOT) EXISTS 절과 함께 사용할 수 있습니다. 이것의 장점은 이식성이 있다는 것입니다 (REPLACE INTO은 MySQL 확장입니다).

+0

입니다. 그게 내 문제 였어. 기본 키를 놓쳤습니다. 감사. – Haljan

0

또 다른 대안은 ... 두 명령을 실행하는 데 큰

truncate table table2; 
insert into table2 select * from table1; 
관련 문제