처음 접해보는거라 어렵습니다...ㅠ.ㅠ 삽질도 오래 했구요...ㅠ.ㅠ
물론 초급이기도 하구요..ㅠ.ㅠ
MySQL 트리거 관련 질문 입니다.
다름이 아니라
A테이블(로그 테이블) 에 ROW가 한줄 입력(INSERT) 되면 트리거에 의해
> B테이블(알림톡 발송 테이블) 에 특정 값을 INSERT 해 알림톡 발송을 하려고 합니다.
그런데 이때
알림톡 발송을 한사람에게 보낼께 아니라 3사람에게 보내야 합니다.
(알림톡 테이블은 데이터가 입력되면 자동으로 발송되게 되어 있습니다.)
그래서 A테이블에서 INSERT 발생시 트리거에 의해
B테이블에 각각 다른 전화번호를 가진 데이터를 총 3번 INSERT 하여 알림톡을 총 3명에게 발송하려 합니다.
그래서 아래와 같이 구현을 해 보왔습니다.
따로 개발 테스트가 힘들어 운영에서 바로 테스트을 해야하는 환경이라 이렇게 구현하면 될지 확인 및 많은 답변 부탁드립니다.
DELIMITER$$
CREATE 트리거이름
AFTER INSERT ON A_로고_테이블
FOR EACH ROW
BEGIN
INSERT INTO B_알림톡_테이블(AAAA, BBBB, CCCC, DDDD, EEEE, FFFF, GGGG, HHHH, JJJJ, KKKK, LLLL, MMMM, NNNN, OOOO, PPPP, QQQQ, RRRR)
VALUES ('1810012552', '결제오류가 발생하였습니다. 결제정보 확인 부탁드립니다.', '결제오류 발생', '결제오류가 발생하였습니다. 결제정보 확인 부탁드립니다.', '003', '002', '004', '01011111111', '01011111111', 'R00', NOW(), '10002', NOW(), '', 'N', '', '');
INSERT INTO B_알림톡_테이블(AAAA, BBBB, CCCC, DDDD, EEEE, FFFF, GGGG, HHHH, JJJJ, KKKK, LLLL, MMMM, NNNN, OOOO, PPPP, QQQQ, RRRR)
VALUES ('1810012552', '결제오류가 발생하였습니다. 결제정보 확인 부탁드립니다.', '결제오류 발생', '결제오류가 발생하였습니다. 결제정보 확인 부탁드립니다.', '003', '002', '004', '01022222222', '01022222222', 'R00', NOW(), '10002', NOW(), '', 'N', '', '');
INSERT INTO B_알림톡_테이블(AAAA, BBBB, CCCC, DDDD, EEEE, FFFF, GGGG, HHHH, JJJJ, KKKK, LLLL, MMMM, NNNN, OOOO, PPPP, QQQQ, RRRR)
VALUES ('1810012552', '결제오류가 발생하였습니다. 결제정보 확인 부탁드립니다.', '결제오류 발생', '결제오류가 발생하였습니다. 결제정보 확인 부탁드립니다.', '003', '002', '004', '01033333333', '01033333333', 'R00', NOW(), '10002', NOW(), '', 'N', '', '');
END
$$DELIMITER;
1. 네. insert 구문 3번 쓰면 됩니다.
=> 답변 감사합니다.
2. 다만. 오타가 좀 있구요.
- VALIES
=> 오타 수정했습니다. 소중한 답변 감사합니다.
3. 입력값들이 죄다 상수값이네요?
- 로그테이블의 컬럼값(NEW.COLUMN_NAME)을 이용해야 하는게 아닐까? 생각되네요.
=> 로그테이블과 알림톡 테이블의 컬럼 내용이 전혀 달라 로그 테이블의 컬럼값을 알림톡테이블에서
사용할수 없는 상태입니다. 그래서 알림톡 테이블에 상수값을 직접 넣어 주웠습니다. 잘못된 구현일까요?
4. 테스트는
- 뭐가 힘들까요? 개발에서 테스트 꼭 해보세요.
=> 개발기를 만들어 테스트 해보도록 하겠습니다. 감사합니다.