Массивная вставка с использованием значения из другой таблицы? - PullRequest
0 голосов
/ 27 сентября 2018

Есть ли простой способ сделать вставку в таблицу, используя значения из другой таблицы?Допустим, мне нужно извлечь значение NAME из T1, и я хочу сделать жестко вставленную в другую таблицу, используя это значение.Значения вставки должны быть примерно такими: INSERT INTO T2 (NAME, AGE, GENDER) VALUES (NAME, 22, 'M') Имя выбирается из T1, 22 и 'M' жестко закодированы в запросе вставки.

Ответы [ 3 ]

0 голосов
/ 27 сентября 2018

Вы можете использовать оператор вставки-выбора, где вы выбираете литералы для желаемых значений:

INSERT INTO t2
SELECT name, 22, 'M'
FROM   t1
0 голосов
/ 27 сентября 2018

Вы можете сделать выбор во вставке:

INSERT INTO T2 (NAME, AGE, GENDER) 
SELECT NAME, 22, 'M' FROM T1

Также удобно, потому что вы можете отказаться от вставки и просто запустить выбор, чтобы проверить, что вы импортируете, прежде чем сделать это, и легко добавитьWHERE NOT EXISTS чтобы сделать его идемпотентом.

0 голосов
/ 27 сентября 2018

Да.,,insert . . . select:

insert into t2 (name, age, gender)
   select name, 22, 'M'
   from t1;
...