エラー手段に挿入:
SELECT T.USER_ID
FROM USER_OTHER_PRIVILEGES T
JOIN USERS U
ON U.ID = T.USER_ID
WHERE T.UOPM_ID = 17
AND T.PRIV_ID IN (719)
戻るつ以上の行。
このクエリを実行すると、少なくとも2つのユーザーIDが表示されます。 VALUE句と
INSERTステートメントがテーブルに一つだけの行を挿入することができ、それはVALUES句の各列に1つのだけ値を期待:あなたが多くの値を入力することができない
INSERT INTO table(col1, col2, col3) VALUES (val1, val2, val3)
行の1列。例えば
このサブクエリは、3つの数値を返した場合:1,2,3を、あなたはこのように1行を挿入することはできません。
+------+---------+---------+---------+-------+-----------+
| ID | PRIV_ID | UOPM_ID | USER_ID | ML_ID | PARENT_ID |
+------+---------+---------+---------+-------+-----------+
| 456 | 1792 | 17 | 1,2,3 | NULL | 1 |
+------+---------+---------+---------+-------+-----------+
私はあなただけの1行を挿入したくないという思いが、
は、あなたの代わりにINSERT INTO .... subquery
バリアントを必要とする、あなたはINSERT INTO ... VALUES ...
構文を使用することはできません。この場合、
+------+---------+---------+---------+-------+-----------+
| ID | PRIV_ID | UOPM_ID | USER_ID | ML_ID | PARENT_ID |
+------+---------+---------+---------+-------+-----------+
| 456 | 1792 | 17 | 1 | NULL | 1 |
+------+---------+---------+---------+-------+-----------+
| 457 | 1792 | 17 | 2 | NULL | 1 |
+------+---------+---------+---------+-------+-----------+
| 458 | 1792 | 17 | 3 | NULL | 1 |
+------+---------+---------+---------+-------+-----------+
このansweを参照してください:あなたはこのように、suqueryによって返される各エントリに対して1つの別個の行を挿入しようとしています詳細は、R:
How can I insert values into a table, using a subquery with more than one result?
、このような場合のためのあなたのinsert文を指定できます
INSERT INTO USER_OTHER_PRIVILEGES (
ID, PRIV_ID,UOPM_ID,USER_ID,ML_ID,PARENT_ID
)
SELECT
PRIV_USER_OTH_ID_SEQ.NEXTVAL,
1792,
17,
T.USER_ID,
NULL,
1
FROM USER_OTHER_PRIVILEGES T
JOIN USERS U
ON U.ID = T.USER_ID
WHERE T.UOPM_ID = 17
AND T.PRIV_ID IN (719)
あなたの質問は何ですか? –
"USER_OTHER_PRIVILEGES"を追加するにはテーブル、67行ですか? – Berkay
最初のクエリに対応する67行をシーケンス1792,17とともにuser_other_privilegesテーブルに挿入しますか? – cableload