DB(SQL)/mysql|maria
[DB] table data copy
24시간초보
2024. 6. 25. 18:39
반응형
예를들어 A라는 테이블이 있는데 그대로 어떤 테이블에 데이터를 넣고 싶은 경우 아래와 같이 할 수 있다.
-- 테이블 A의 컬럼 정보를 조회하는 쿼리
SELECT GROUP_CONCAT(COLUMN_NAME) INTO @columns
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'A' AND TABLE_SCHEMA = DATABASE();
-- 트리거 생성 스크립트를 생성하는 쿼리
SET @trigger_sql = CONCAT('
CREATE TRIGGER insert_into_b_after_a
AFTER INSERT ON A
FOR EACH ROW
BEGIN
INSERT INTO B (', @columns, ')
VALUES (', REPLACE(@columns, ',', ', NEW.'), ');
END;');
-- 트리거 생성
PREPARE stmt FROM @trigger_sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
반응형