Oracle: строка копии при обновлении одного поля

Пожалуйста, примите во внимание: Я задаю вопрос, который я хочу, ответил. Я знаю, что этот вопрос означает, что база данных настраивается плохо. Таким образом, я провалю любые ответы, которые предлагают изменить путь, таблица настраивается.

Я должен копировать набор строк при изменении одного значения.

name   col1 col2
dave   a    nil
sue    b    nil
sam    c    5

потребности стать:

name   col1 col2
dave   a    nil
dave   a    a
sue    b    nil
sue    b    a
same   c    5

IE для всех записей в этой таблице, где col2 is null, создайте новую запись в таблице где name и col1 скопированный, и col2 a.

13
задан offby1 7 March 2013 в 18:37
поделиться

2 ответа

Использование:

INSERT INTO table
  (name, col1, col2)
SELECT t.name, t.col1, 'a'
  FROM TABLE t
 WHERE t.col2 IS NULL

Предполагается, что ни столбцы name , ни col1 не являются первичным ключом и не имеют ограничений уникальности.

17
ответ дан 1 December 2019 в 22:54
поделиться

Подойдет ли это?

INSERT INTO yourtable
       (SELECT name, col1, 'a'
          FROM yourtable 
         WHERE col2 is NULL);
3
ответ дан 1 December 2019 в 22:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: