Как создать триггер, который после добавления записи в 1 таблицу создаст n количество записей в другой таблице?

Триггер должен работать следующим образом:

  1. Осуществляется запись в таблицу (table1) подобного типа: SerialNumber: 123456, DeviceCount: N(n ≥ 1);
  2. Должен срабатывать AFTER TRIGGER, который в таблице (table2) создаст N-количество записей указанное в DeviceCount. Пример:
------------ INSERT Table1 --------------
SerialNumber: 123456, DeviceCount: 3;
---------- Trigger INSERT Table2 --------
SerialNumber: 123456, DeviceNumber: 1;
SerialNumber: 123456, DeviceNumber: 2;
SerialNumber: 123456, DeviceNumber: 3;
-----------------END---------------------

Ответы (1 шт):

Автор решения: Akina
CREATE TRIGGER trigger_name
AFTER INSERT
ON table1
FOR EACH ROW
INSERT INTO table2 (SerialNumber, DeviceNumber)
SELECT NEW.SerialNumber, series.DeviceNumber 
FROM generate_series(1, NEW.DeviceCount) AS series(DeviceNumber);
→ Ссылка