문서의 이전 판입니다!
/*
MySQL 5.0.2 이상/MariaDB 5.1 이상
*/
-- 생성
DELIMITER $$
CREATE TRIGGER {트리거}
{BEFORE | AFTER} {INSERT | UPDATE | DELETE} ON {테이블}
FOR EACH ROW -- ROW 단위
BEGIN
/*
쿼리 작성
*/
END
$$
DELIMITER ;
-- 삭제
DROP TRIGGER {트리거};
/*
MySQL 5.0.10 이상/MariaDB 5.1 이상
*/
-- 삭제
DROP TRIGGER IF EXISTS {트리거};
/*
MSSQL 2000 이상
*/
-- 생성
CREATE TRIGGER {트리거} ON {테이블}
{INSTEAD OF | AFTER} {INSERT | UPDATE | DELETE} -- 중복 선택 가능 (콤마)
-- CREATE TRIGGER {트리거} ON {뷰}
-- {INSTEAD OF} {INSERT | UPDATE | DELETE} -- 중복 선택 가능 (콤마)
AS -- STATEMENT 단위
BEGIN
/*
쿼리 작성
*/
END;
GO
-- 삭제
DROP TRIGGER {트리거};
/*
MSSQL 2016 이상
*/
-- 삭제
DROP TRIGGER IF EXISTS {트리거};
/*
Oracle 8i 이상/Tibero 5 이상
*/
-- 생성
CREATE TRIGGER {트리거}
{BEFORE | AFTER} {INSERT | UPDATE | DELETE} ON {테이블} -- 중복 선택 가능 (OR)
-- {INSTEAD OF} {INSERT | UPDATE | DELETE} ON {뷰} -- 중복 선택 가능 (OR)
FOR EACH ROW -- ROW 단위 (생략 시 STATEMENT 단위)
DECLARE
-- 변수 선언
BEGIN
/*
쿼리 작성
*/
END;
/
-- 삭제
DROP TRIGGER {트리거};
/*
Oracle 8i 이상/Tibero 6 이상
*/
-- 생성/수정
CREATE OR REPLACE TRIGGER {트리거}
{BEFORE | AFTER} {INSERT | UPDATE | DELETE} ON {테이블} -- 중복 선택 가능 (OR)
-- {INSTEAD OF} {INSERT | UPDATE | DELETE} ON {뷰} -- 중복 선택 가능 (OR)
FOR EACH ROW -- ROW 단위 (생략 시 STATEMENT 단위)
DECLARE
-- 변수 선언
BEGIN
/*
쿼리 작성
*/
END;
/
/*
Oracle 23c
*/
-- 삭제
DROP TRIGGER IF EXISTS {트리거};
/*
PostgreSQL 7.3 이상
*/
-- 생성
CREATE FUNCTION {함수}()
-- CREATE OR REPLACE FUNCTION {함수}()
RETURNS TRIGGER AS $$
DECLARE
-- 변수 선언
BEGIN
/*
쿼리 작성
*/
RETURN NEW; -- BEFORE > INSERT, UPDATE
-- RETURN OLD; -- BEFORE > DELETE
-- RETURN NULL; -- AFTER
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER {트리거}
{BEFORE | AFTER} {INSERT | UPDATE | DELETE} ON {테이블} -- 중복 선택 가능 (OR)
FOR EACH ROW -- ROW 단위
EXECUTE PROCEDURE {함수}();
-- 삭제
DROP TRIGGER {트리거} ON {테이블};
DROP FUNCTION {함수}(); -- 인자 타입 명시
/*
PostgreSQL 9.1 이상
*/
-- 생성
CREATE FUNCTION {함수}()
-- CREATE OR REPLACE FUNCTION {함수}()
RETURNS TRIGGER AS $$
DECLARE
-- 변수 선언
BEGIN
/*
쿼리 작성
*/
RETURN NEW; -- BEFORE > INSERT, UPDATE
-- RETURN OLD; -- BEFORE > DELETE
-- RETURN NULL; -- AFTER, INSTEAD OF
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER {트리거}
{BEFORE | AFTER} {INSERT | UPDATE | DELETE} ON {테이블} -- 중복 선택 가능 (OR)
-- {INSTEAD OF} {INSERT | UPDATE | DELETE} ON {뷰}
FOR EACH ROW -- ROW 단위
EXECUTE PROCEDURE {함수}();
-- 삭제
DROP TRIGGER IF EXISTS {트리거} ON {테이블};
DROP FUNCTION IF EXISTS {함수}(); -- 인자 타입 명시
/*
PostgreSQL 11.0 이상
*/
-- 생성
CREATE FUNCTION {함수}()
-- CREATE OR REPLACE FUNCTION {함수}()
RETURNS TRIGGER AS $$
DECLARE
-- 변수 선언
BEGIN
/*
쿼리 작성
*/
RETURN NEW; -- BEFORE > INSERT, UPDATE
-- RETURN OLD; -- BEFORE > DELETE
-- RETURN NULL; -- AFTER, INSTEAD OF
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER {트리거}
{BEFORE | AFTER} {INSERT | UPDATE | DELETE} ON {테이블} -- 중복 선택 가능 (OR)
-- {INSTEAD OF} {INSERT | UPDATE | DELETE} ON {뷰}
FOR EACH ROW -- ROW 단위
EXECUTE FUNCTION {함수}();