0

シーケンスを持つテーブルでサブクエリとサブセレクトを使用してテーブルに問題を挿入しています。これが私のコードの簡略版です:

 INSERT INTO my_table
     (sequence_id,
     product_code,
     product_status)
 SELECT 
     sequence_id.NEXTVAL,
     alias_table.* from (SELECT
     product_code, 
     product_status,
 FROM products
 WHERE product_code = '123456') alias_table;

私が抱えている主な問題は、シーケンスに関するものです。このクエリは複数の行を返し、先に進むにはシーケンスが必要だからです。どんな助けでも本当に感謝しています!

4

3 に答える 3

0

次のシーケンス値を挿入するトリガーを作成します。

CREATE OR REPLACE TRIGGER my_schema.my_table_ins_trg
   BEFORE INSERT ON my_schema.my_table FOR EACH ROW
   WHEN (New.ID IS NULL) 
BEGIN
  SELECT my_schema.sequence_id.Nextval INTO :New.ID FROM dual;
END;

次に、挿入クエリからシーケンスを削除できます。

 INSERT INTO my_table
     (product_code,
      product_status)
 SELECT alias_table.* FROM (SELECT product_code, product_status
                              FROM products
                             WHERE product_code = '123456') alias_table;
于 2013-08-01T20:38:47.863 に答える
0
INSERT ...
SELECT 
 sequence_id.NEXTVAL,
 product_code, 
 product_status
FROM products
WHERE product_code = '123456';
于 2013-08-01T18:51:02.783 に答える