database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 25781 게시물 읽기
No. 25781
update 트리거로 다른 테이블 업데이트 후 자기 자신 레코드를 지울 수 있는 방법이 있을까요?
작성자
최대현(xroric)
작성일
2006-08-31 15:13ⓒ
2006-09-01 13:22ⓜ
조회수
2,867

DB 버전 : MySQL 5.0.22-community
수행한 트리거 생성 방법
1.
DELIMITER //
CREATE TRIGGER UPDATE_TRI AFTER UPDATE ON TEST_ORIGINAL
FOR EACH ROW
BEGIN
UPDATE TEST_DESTINATION SET NAME=NEW.NAME WHERE SEQ=NEW.SEQ;
DELETE FROM TEST_ORIGINAL WHERE SEQ=OLD.SEQ;
END //
DELIMITER ;

2.
DELIMITER //
CREATE TRIGGER UPDATE_TRI AFTER UPDATE ON TEST_ORIGINAL
FOR EACH ROW
BEGIN
UPDATE TEST_DESTINATION SET NAME=NEW.NAME WHERE SEQ=NEW.SEQ;
END //
DELIMITER ;


DELIMITER //
CREATE TRIGGER DELETE_TRI AFTER UPDATE ON TEST_DESTINATION
FOR EACH ROW
BEGIN
DELETE FROM TEST_ORIGINAL WHERE SEQ=OLD.SEQ;
END //
DELIMITER ;


각각 1번과 2번의 방식으로 테스트를 해 보았습니다.
제가 에러 메시지를 적지는 못하지만 해석을 해보니 이미 트리거가 적재된 상태이므로 다른 트리거를 사용하지 못한다는 내용입니다.(1번과 2번 에러 내용이 같습니다.)

제가 MySQL에서 트리거를 처음 해보는지라 혹시
TEST_ORIGINAL에서 업데이트가 되면 TEST_DESTINATION에 일련의 레코드 값을 UPDATE하고 TEST_ORIGINAL내에서 같은 SEQ는 삭제해 버리는 트리거를 생성할 방법이 있는지 궁금합니다.

혹 안된다면 데몬을 따로 하나 만들어야 할 듯 해서요...:-)
좋은 하루 되시기 바랍니다.~~~

이 글에 대한 댓글이 총 4건 있습니다.

트리거를 레코드 삭제로 걸어놓고 삭제할 때 다른 테이블을 업데이트 하면 될 것 같네요. 좋은 하루 되세요. ^^*

정왕균(아레아)님이 2006-09-01 11:12에 작성한 댓글입니다.

답변 감사합니다. :-)
그런데.. 제가 내용하나를 빼먹었군요...죄송합니다.
이미 개발된 Agent가 자동으로 update를 해주거든요.
사용자가 임의로 삭제하는 것이 아닙니다.

사용자 임의 삭제였다면 저도 그 생각을 하고 있었는데..
Agent가 자동으로 update를 해주는 것이라서요...
제가 그 Agent를 임의로 수정할 수 없는 상태랍니다. ㅜㅜ

좋은 하루 되시기 바랍니다.~ :-)

최대현(xroric)님이 2006-09-01 13:17에 작성한 댓글입니다.
이 댓글은 2006-09-01 13:18에 마지막으로 수정되었습니다.

프로시저나 함수를 호출해서도 해보세요. 
안되면 어쩔 수 있나요. 꽁수를 써야죠.

정왕균(아레아)님이 2006-09-01 15:43에 작성한 댓글입니다.

답변 감사합니다. :-)

후~ 이미...프로시져와 함수를 심어봐도 안되더군요..;;
다시 한번 해봐야겠습니다.
이번에도 안되면..-_-;;

데몬을 돌려야 할 것 같습니다....

즐거운 주말 되세요~ :-)

최대현(xroric)님이 2006-09-01 16:16에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
25785limit에 대한 질문입니다. [1]
김경민
2006-08-31
2020
25784mysql 사용 가능한 메모리 제한 있는지요 [1]
dbman_kpt
2006-08-31
1597
25782mysql을 처음사용하는 사용자입니다. [1]
초보
2006-08-31
1582
25781update 트리거로 다른 테이블 업데이트 후 자기 자신 레코드를 지울 수 있는 방법이 있을까요? [4]
최대현
2006-08-31
2867
25780[질문]web(explorer)로 db에 utf8로 저장하였다가 utf8로 저장된 데이타 로드하기 [2]
황인상
2006-08-31
2410
25779프로시져에서 인자에 default 값 [1]
초보
2006-08-31
1897
25778php 입력값 db에 저장시 로그인된 id값 같이 저장하는법좀 가르쳐주세요.. [2]
해적
2006-08-30
1219
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다