вставка нескольких значений из исходной таблицы в таблицу назначения - PullRequest
0 голосов
/ 04 марта 2020

если приведенный ниже код возьмет все значения из таблицы sr c и вставит их в таблицу IC_MST_VELOCITY. Мне нужно знать, как перенести все записи из таблицы sr c в таблицу IC_MST_VELOCITY, если приведенный ниже код неверен.

       (SELECT  ARTICLE,
                CONCATKEY,
                CAST (LASTMODIFIEDDATE AS TIMESTAMP)   AS LASTMOD,
                PRODSUBGRP,
                FROM IC_VELOCITY_V 
                ) src

    INSERT INTO IC_MST_VELOCITY(
                                ARTICLE,
                                CONCATKEY,
                                ISDELETED,
                                LASTMODIFIEDDATE,
                                MSTID,
                                PRODSUBGRP,
                                SKUID,
                                VELOCITY,
                                WHSE) 
                    VALUES(
                    select ARTICLE    from src,
                    select CONCATKEY  from src,
                    select LASTMOD    from src,
                    select PRODSUBGRP from src,
                 )

                    );

1 Ответ

0 голосов
/ 04 марта 2020

Нет, ваш код ничего не сделает, так как он недействителен.

Нечто подобное может; обратите внимание, что все значения NULL вставляются в столбцы, которые не имеют значения source (выбрано из таблицы ic_velocity_v):

insert into ic_mst_velocity
  ( article,
    concatkey,
    isdeleted,
    lastmodifieddate,
    mstid,
    prodsubgrp,
    skuid,
    velocity,
    whse
  ) 
  (select article,
          concatkey,
          null isdeleted,
          cast(lastmodifieddate as timestamp) as lastmod,
          null mstid, 
          prodsubgrp,
          null skuid,
          null velocity,
          null whse
   from ic_velocity_v
  );

Или, более короткая версия без столбцов, которые не имеют никакого значения:

insert into ic_mst_velocity
  ( article,
    concatkey,
    lastmodifieddate,
    prodsubgrp
  ) 
  (select article,
          concatkey,
          cast(lastmodifieddate as timestamp) as lastmod,
          prodsubgrp
   from ic_velocity_v
  );

Будет ли работать какой-либо из них? Я не знаю; это зависит, например, от

  • , если есть NOT NULL столбцы, но вы ничего не помещаете туда, он потерпит неудачу
  • , если есть триггер базы данных, который обрабатывает это, он не потерпит неудачу
  • , если обеспечена уникальность и она нарушена, она потерпит неудачу
    • может быть, вам понадобится предложение where, тогда?
  • et c.

Как я уже сказал: это просто зависит .

...