어떤 테이블이 업데이트 될때 마다 다른 테이블도 동일하게 업데이트 해야 한다면?

1번
 
php에서 본테이블의 데이타를 가져온다음
addslases 내지는 mysql_real_escape_string 을 사용 하여 데이타를 변환후
다른 테이블에 업데이트 한다.
 
 
2. 다음과 비슷한 sql 문으로 한방에 처리한다.
 
$sql = "update 복사될테이블 a,  원본테이블 b set
        a.wr_subject=REPLACE(b.wr_subject, \"'\", \"\\'\")
        , a.wr_content=REPLACE(b.wr_content, \"'\", \"\\'\")
        , a.wr_name=REPLACE(b.wr_name, \"'\", \"\\'\")
        where a.wr_id=$wr_id and  a.wr_id=b.wr_id";
 
3. 기타 다른 의견.
|

댓글 19개

호곡~ 좋은 정보 감사요.
3.기타다른의견
트리거 사용도 괜찮다고 생각합니다
좋은 의견 감사합니다.
요걸로 인해서 코드가 한결 간결해지겠네요 ㅎㅎ
혹시 left join이나, 1:M인 경우도 잘 되나요?
이건 일대일 둘다 동일키값이 존재할때만 동작합니다.
http://dev.mysql.com/doc/refman/5.5/en/update.html
여러 가지 경우 제한은 없다고 나와 있는데
실제로 잘되는지 궁금해서요.
네 위에 저 쿼리는 그렇구요. 1:1 인경우 키값이 있을때만 존재하고요
left 조인으로도 예전에 해봣었는데. 1:다는 잘 모르겟습니다.
http://docs.cena.co.kr/?mid=textyle&document_srl=18342
구글에서 자료찾다보니 이런것도 있네요.
InnoDB에서만 되는거 아닐까요? 확인해봐야곘네요..
당근 4.x버전은 안먹을것같고..
오호 잘봤습니다
유창화님의 팁을 적용하는 과정에서 질문드립니다.

1
팁의 뜻은 한 게시판에 글을 올리면 다른 게시판에도 글이 올라간다는 뜻이지요?

2
게시판 스킨의 write_update.skin.php 에 팁을 기록한 후 사용한다는 말씀이지요?

3
\"'\", \"\\'\" 이부분도 그대로 드래그복사사용하면 되나요?

4
2,3번대로 했는대도 적용이 안되면 "진정한승리님"댓글처럼 mysql버전의 문제인가요?

5
"복사될테이블"이 여러개일 경우는 어떻게 해야하는가요?
그대로 사용 하면 되고
mysql 버전은 크게 상관없는 걸로 나오네요

복사될 테이블이 여러개일경우 여러번 해야 할거 같습니다.
답변 감사드립니다.

1
a게시판에서 글을 올린 후 이 글이 b게시판에도올라가게 한다면
복사될테이블 = b, 원본테이블=a 인가요?

2
wr_1~50 여분필드도 다른 작업없이 이런 식으로 가능한가요?

3
a게시판에서 글을 올리는 중 여분필드에 기록하지 않은 것이 있어도 b게시판도 없글되나요?
담변 감사드립니다.

아무런 수정이 없는 깨끗한 게시판으로 실험한 후 다시 질문드리겠습니다.
깨끗한 게시판으로 해도 역시 안됩니다.
다음과 같이 했습니다.

1
diary_ok 게시판과 diary_chan 게시판은 같은 basic게시판스킨을 사용합니다.

2
write_update.skin.php 에 유창화님의 팁을 다음과 같이 드래그입력 후 게시판이름을 넣어주었습니다.
----------------------
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

$sql = "update g4_write_diary_ok a, g4_write_diary_chan b set
a.wr_subject=REPLACE(b.wr_subject, \"'\", \"\\'\")
, a.wr_content=REPLACE(b.wr_content, \"'\", \"\\'\")
, a.wr_name=REPLACE(b.wr_name, \"'\", \"\\'\")
where a.wr_id=$wr_id and a.wr_id=b.wr_id";
?>

3
diary_chan 에 글을 입력합니다.

--------------------
그래도 diary_ok 게시판에는 아무런 변화가 없습니다.
혹시나 해서 diary_ok 게시판의 스킨을 write_update.skin.php 없는 것을 사용해도 마찬가지입니다.
http://www.iwoman.or.kr/bbs/board.php?bo_table=diary_ok
http://www.iwoman.or.kr/bbs/board.php?bo_table=diary_chan
sql_query($sql);

을 일단 넣어야 할거 같고요

제가 위에 질문에 착각한거 같습니다.
게시판 복사에 해당하는 내용이 아닙니다.

데이타를 인서트 시키는 것이 아니라
동일한 wr_id가 두 테이블에 존재할때
원본테이블의 데이타가 변화될때
다른 테이블 역시 동일하게 업데이트 한다는 내용입니다.

즉, 위의 저 내용은 new 테이블 같은 곳에
게시판 내용이 수정될때
동일하게 같이 수정한다는 그런 내용입니다.

게시판 내용을 복사한다는 내용이 아닙니다.
댓글을 작성하시려면 로그인이 필요합니다. 로그인

프로그램

+
제목 글쓴이 날짜 조회
14년 전 조회 3,946
14년 전 조회 1,880
14년 전 조회 679
14년 전 조회 606
14년 전 조회 3,550
14년 전 조회 4,233
14년 전 조회 976
14년 전 조회 1,169
14년 전 조회 4,398
14년 전 조회 1,208
14년 전 조회 1,001
14년 전 조회 753
14년 전 조회 764
14년 전 조회 953
14년 전 조회 879
14년 전 조회 1,033
14년 전 조회 910
14년 전 조회 1,334
14년 전 조회 677
14년 전 조회 535
14년 전 조회 568
14년 전 조회 714
14년 전 조회 1,183
14년 전 조회 814
14년 전 조회 1,349
14년 전 조회 1,104
14년 전 조회 1,080
14년 전 조회 1,052
14년 전 조회 1,924
14년 전 조회 3,252
14년 전 조회 1,455
14년 전 조회 2,395
14년 전 조회 1,892
14년 전 조회 1,777
14년 전 조회 957
14년 전 조회 496
14년 전 조회 768
14년 전 조회 939
14년 전 조회 1,655
14년 전 조회 1,707
14년 전 조회 1,144
14년 전 조회 792
14년 전 조회 1,016
14년 전 조회 1,043
14년 전 조회 1,052
14년 전 조회 585
14년 전 조회 660
14년 전 조회 775
14년 전 조회 1,708
14년 전 조회 913
14년 전 조회 860
14년 전 조회 1,146
14년 전 조회 754
14년 전 조회 907
14년 전 조회 855
14년 전 조회 1,143
14년 전 조회 677
14년 전 조회 679
14년 전 조회 614
14년 전 조회 731
14년 전 조회 930
14년 전 조회 1,681
14년 전 조회 964
14년 전 조회 913
14년 전 조회 1,639
14년 전 조회 881
14년 전 조회 733
14년 전 조회 743
14년 전 조회 834
14년 전 조회 1,019
14년 전 조회 944
14년 전 조회 996
14년 전 조회 1,107
14년 전 조회 973
14년 전 조회 2,240
14년 전 조회 1,868
14년 전 조회 2,544
14년 전 조회 509
14년 전 조회 809
14년 전 조회 1,072
14년 전 조회 671
14년 전 조회 653
14년 전 조회 1,443
14년 전 조회 1,254
14년 전 조회 2,344
14년 전 조회 1,252
14년 전 조회 852
14년 전 조회 3,368
14년 전 조회 1,592
14년 전 조회 1,008
14년 전 조회 1,368
14년 전 조회 727
14년 전 조회 1,848
14년 전 조회 778
14년 전 조회 1,212
14년 전 조회 721
14년 전 조회 1,253
14년 전 조회 1,488
14년 전 조회 998
14년 전 조회 782
🐛 버그신고