There:
i)は2つのテーブルa) "incidents_all"と "incidents"とシーケンス "incident_ids"です。
ii)table、インシデントには、table、incidents_allよりも主キー制約として余分な列IDがあります。
iii)「incidents_all」には重複レコードが含まれています。
目的:テーブルに一意のインシデントレコードを挿入するには、テーブルから「インシデント」を、インシデント番号と共にインシデント番号を挿入します。OracleのINSERT INTO ... SELECT ... FROM ...を使用してレコードを重複排除する方法
:
A)を使用して、必要なユニークされている列に一意のインデックスを作成します。
b)でユニークなレコードを「事件」の表を移入「ids」から「incidents_all」のレコードとともにシーケンス番号を選択します。
INSERT INTO "incidents"
(
"id",
"sl_no",
"host_name"
"down_since",
"category",
"fault_code"
)
SELECT
"incident_ids".NEXTVAL AS "id",
"incidents_all"."sl_no" AS "sl_no",
"incidents_all"."host_name" AS "host_name",
"incidents_all"."down_since" AS "down_since",
"incidents_all"."category" AS "category",
"incidents_all"."fault_code" AS "fault_code"
FROM "incidents_all", "incident_ids";
ただし、「シーケンスは許可されていません!」という例外が表示されます。
シーケンス番号とともに固有のレコードを挿入する際に私を案内してください!
"ids"の塊は入っていません –
"incidents_all"テーブルではどの列が繰り返されますか? –
小文字のテーブル名と列を使用する特別な理由はありますか? –