Create Trigger {trigger-name}
{ BEFORE | AFTER } { INSERT | UPDATE | DELETE }
{ PRECEDES | FOLLOWS } other-trigger-name
on {table-name} FOR EACH ROW
BEGIN
... OLD.col , NEW.col
ex:
SELECT * FROM Subject WHERE classroom < 3
UNION
SELECT * FROM Subject WHERE classroom < 5;
CREATE FUNCTION '함수명' (
파라미터
) RETURNS 반환할 데이터타입
BEGIN
수행할 쿼리
RETURN 반환할 값
END
CREATE DEFINER=`gwonyeong`@`localhost` FUNCTION `f_randname`() RETURNS varchar(31) CHARSET utf8mb4
BEGIN
declare v_ret varchar(31);
declare v_lasts varchar(255) default '김이박조최전';
declare v_firsts varchar(255) default '순신세종성호지헤가은세호윤국';
set v_ret = concat( f_rand1(v_lasts), f_rand1(v_firsts), f_rand1(v_firsts));
RETURN v_ret;
END
이와 같은 함수를 작성하면 query문에서는 f_randname()으로 접근할 수 있고 결과값을 DB에 저장하는데 사용할 수 있음.
f_rand()
CREATE DEFINER=`gwonyeong`@`localhost` FUNCTION `f_rand1`(_str varchar(255)) RETURNS varchar(31) CHARSET utf8mb4
BEGIN
declare v_ret varchar(31);
declare v_len tinyint;
set v_len = char_length(_str);
set v_ret = substring(_str, CEIL(rand() * v_len), 1);
RETURN v_ret;
END
이와 같이 생겼는데 받은 파라미터 문자열에서 랜덤한 1글자를 반환해줌.
이러한 방법으로 랜덤한 이름을 생성하여 여러개의 테스트 데이터를 만들 수 있었음.