2012-04-30 7 views
0

큰 MySQL 데이터베이스가 있고 더 작은 MySQL 데이터베이스로 중요한 비트를 추출합니다. 큰 데이터베이스의 값은 계속 변합니다. 더 작은 데이터베이스도 동적으로 변경되어야합니다.값이 변경된 경우에만 PHP로 MySQL 데이터베이스 업데이트

은이 코드를 사용하여, 비어 때만 작은 데이터베이스를 채울 수 있어요 :

$SQL_INSERT="INSERT LOW_PRIORITY IGNORE INTO oddsnavi_baby.calc (one , two, three) 
VALUES ('$one', '$two' , '$three')"; 

mysql_db_query($database_baby, $SQL_INSERT) or die("Failed Query of " . $SQL_INSERT); 

나는 업데이트로 변경되는 값을 싶습니다. 예를 들어, $ 3이 작은 데이터베이스의 'three'에있는 기존 값과 다른 경우 '3'이 행에서 유일하게 업데이트 된 값입니다. 그렇게하는 방법?

편집 : 다음 코드에서 오류가 발생합니다. 구문에 어떤 문제가 있습니까?

$SQL_INSERT="INSERT LOW_PRIORITY IGNORE INTO oddsnavi_baby.calc (one , two, three) 
VALUES ('$one', '$two' , '$three') 
ON DUPLICATE KEY UPDATE oddsnavi_baby.calc SET two = '$two' , three = '$three' 
WHERE one = '$one'"; 
나는 당신이 할 수있는 두 가지 방법을 생각할 수
+0

내가 큰 데이터베이스 통제 할 수없는, 그래서 같은 과정에서 작은 데이터베이스를 업데이트 할 수 없습니다. 내가 말하는이 업데이트는 cron 작업으로 실행되어야하므로 백그라운드에서 수행됩니다. 작은 데이터베이스가 비어있는 경우에만 채우는 대신 올바른 데이터베이스를 업데이트하는 올바른 코드를 찾고 있습니다. INSERT ON DUPLICATE KEY UPDATE와 같은 것입니다. –

답변

0

:

  1. 후 관리 소프트웨어 변경을, "큰"데이터베이스를 변경하는 작은 데이터베이스를 관리하는 소프트웨어를 경고 및 소프트웨어 해당 필드.

  2. 두 개의 데이터베이스 사이에서 뷰를 생성 할 수 있다고 생각합니다. 그렇다고해도 그렇게 할 수는 없지만 아무리 생각해도 가능하지는 않지만 왜 2 개 (또는 그 이상)의 데이터베이스간에 외래 키를 만들 수는 없습니까? 두 데이터베이스가 동일한 물리적 하드웨어에서 호스팅되는 경우

1

, 당신은 "작은"데이터베이스의 값을 업데이트하여 "큰"데이터베이스에 더 테이블 중 하나에 갱신 트리거를 구현하는 것을 고려할 수 있습니다. 여기

는 MySQL의에서 트리거를 사용하는 방법에 대한 간략한 개요와 기사입니다 : http://www.roseindia.net/mysql/mysql5/triggers.shtml

관련 문제