[英]rownumber in insert into
我想在其中一列中插入行號。 But since row_number()
is a window ( analytic proper to Oracle ) function which can be used only for select statement is there any other way to insert row number.
例如:
INSERT INTO prnr (pm,GEG_ID,ET_ID,fzg_id,nr,id)
VALUES(p_gpm_id,master_rec.geg_id,master_rec.et_id,
master_rec.fzg_id,row_number() over (partition by master_rec.geg_id));
我想在程序中使用這個插入語句。
嘗試將您的代碼重構為INSERT INTO... SELECT
:
INSERT INTO prnr (pm, GEG_ID, ET_ID, fzg_id, nr, id)
SELECT p_gpm_id, geg_id, et_id, fzg_id, ROW_NUMBER() OVER (PARTITION BY geg_id),
-- some 6th column here...
FROM master_rec;
如果您的目標只是簡單地為id
列生成順序 integer 值(如注釋中所述),則使用GENERATED ALWAYS AS IDENTITY
選項重新創建現有id
列,例如
ALTER TABLE prnr DROP COLUMN id;
ALTER TABLE prnr ADD id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.