테스트 사이트 - 개발 중인 베타 버전입니다

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

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 테이블 같은 곳에
게시판 내용이 수정될때
동일하게 같이 수정한다는 그런 내용입니다.

게시판 내용을 복사한다는 내용이 아닙니다.

게시판 목록

프로그램

글쓰기