반응형
한 테이블에 행을 삽입하고 다른 테이블의 값을 Maria와 함께 루프에 삽입DB
MariaDB 10.1에서 다른 테이블에 행을 삽입하는 트리거를 설정해야 합니다.지금까지 단일 레코드에 대한 트리거는 다음과 같습니다.
DELIMITER //
CREATE TRIGGER generate_items
AFTER INSERT
ON my_table
FOR EACH ROW
BEGIN
-- some_id is the id from my_table
INSERT INTO another_table(some_id, some_value)
VALUES (NEW.id, 'x');
END;
//
DELIMITER ;
나의 문제는some_value
삽입할 유일한 레코드가 아니라 다른 테이블에서 가져온 값 목록입니다.실제로 방아쇠에 이런 것이 필요합니다.
-- Pseudo-code for illustrating
SET @values = SELECT value FROM some_table WHERE condition = true;
FOREACH(@value in @values) DO
INSERT INTO another_table(some_id, some_value) VALUES (NEW.id, @value);
END
MariaDB 10.1을 사용하면 어떤 가능성이 있습니까?MariaDB 10.3이 FOR-loop을 제공한다고 들었는데 아직 데이터베이스를 업그레이드할 수 없습니다.
사용할 수 있습니다.insert ... select
대신 구문insert ... values()
그래서 다음과 같은 것이 있습니다.
CREATE TRIGGER generate_items
AFTER INSERT ON my_table FOR EACH ROW
INSERT INTO another_table(some_id, some_value)
SELECT NEW.id, value FROM some_table WHERE condition = true
;
이렇게 하면 다음에 레코드를 삽입할 수 있습니다.another_table
에 있는 바와 같이some_table
지정된 조건에서 검색value
동일하게 할당하는 동안 쿼리에서NEW.id
모든 기록에 이르기까지
참고: 트리거는 단일 쿼리로 구성되므로 사용할 필요가 없습니다.BEGIN
그리고.END
구분 기호를 변경할 수도 없습니다.위의 단순화된 버전은 작동할 것입니다.
언급URL : https://stackoverflow.com/questions/58614559/inserting-rows-in-one-table-with-values-from-another-table-in-a-loop-with-mariad
반응형
'bestsource' 카테고리의 다른 글
SQL Server에서 데이터를 두 테이블에 동시에 삽입하려면 어떻게 해야 합니까? (0) | 2023.08.22 |
---|---|
Oracle temp 테이블스페이스를 사용하는 프로세스/쿼리 확인 (0) | 2023.08.22 |
데이터 전용 볼륨을 한 호스트에서 다른 호스트로 포팅하는 방법은 무엇입니까? (0) | 2023.08.17 |
com.vmdk.jdbc.exceptions.jdbc4.커뮤니케이션예외:통신 링크 고장 (0) | 2023.08.17 |
파워셸에서 처분하지 않는 것은 얼마나 나쁜 일입니까? (0) | 2023.08.17 |