web-dev-qa-db-ja.com

別の表からのdb2照会挿入

テーブルproduct(id_product、name);があります。

もう1つあります:productHistory(id_H、id_product、name);

ProductHistoryにproductのすべての行を挿入するクエリ(db2)を作成したいと思います。

シーケンスproduct_history_seqがあります

私はそのようなことをしたい:

insert into productHistory 
        (id_h ,  , id_product , name) 
  values ( product_history_seq.nextval,..

または、

select (id_product , name) from product

正しいクエリは何ですか?

6
senior

私はあなたが探していると信じています:

insert into  productHistory 
       ( id_h
       , id_product 
       , name
       ) 
  select next value for product_history_seq
       , id_product 
       , name 
    from product 
;
4
WarrenT

Id_hを自動インクリメントして、これを試してください

  insert into  productHistory ( id_product , name) values (select id_product , name from product );

id_hは、クエリに入れる必要がなく自動インクリメントされます

それが役立つことを願っています

2
Sonu Sindhu
INSERT INTO productHistory (id_h, id_product, name)
  (SELECT
    product_history_seq.nextval,
    id_product,
    name
  FROM product);

それはうまくいく

1
senior

「yourtableoneに挿入し、yourtabletwoからデフォルトのval1、val2を選択」し、IDがデフォルトで生成されることを宣言します

0
Peter Miehle