我在Oracle數據庫中擁有此表,該數據庫在其中的3個數據列上定義了主鍵。我想刪除主鍵約束以允許具有這些列的重複數據的行,並創建一個新列'id',以包含這些行的自動遞增整數ID。我知道如何創建一個序列並觸發爲添加到表中的新行添加自動遞增ID,但是可以編寫一個PL/SQL語句來爲已經在表中的所有行添加唯一ID嗎?在Oracle中爲新列指定自動遞增值
1
A
回答
5
一旦你創建序列:
update mytable
set id = mysequence.nextval;
3
如果你只是使用一個整數序列,你可以用rownum更新id。例如
update
table
set id = rownum
然後,您需要將序列復位到下一個有效的ID。
2
這是你需要什麼?
UPDATE your_table
SET id = your_seq.nextval;
這是假設你不在乎什麼爲了你的主鍵英寸
0
首先,你應該檢查你的PCTFREE ...是否有足夠的空間,每行變長?
如果您選擇了一個非常小的PCTFREE或者您的數據有很多長度增加的更新,那麼您可能會開始鏈接每一行以執行更新。
你幾乎肯定會更好地做這個CTAS。
創建表t2作爲select seq.nextval,t1。* from t1。
drop t1
將t2重命名爲t1。
相關問題
- 1. 在MySql中明確指定自動遞增列的值
- 2. 在oracle 10g中添加自動增量和自動遞減列
- 3. 試圖在Oracle 11g中自動遞增
- 4. 自定義指令中的自動遞增值
- 5. ORACLE自動遞增JPA
- 6. 爲Oracle中的每個重複值自動遞增
- 7. 如何在SQL Server中爲自動增量列指定特定值?
- 8. 如何指定沒有自動遞增
- 9. MySQL自動遞增自定義值
- 10. 自動遞增列
- 11. Oracle序列或選擇MAX()在自動遞增字段中?
- 12. 在EF4中爲自動增量列設置自定義值
- 13. 在Oracle中增加列值
- 14. 指定非主鍵列上的自動遞增列的默認開始值?
- 15. 行更新時自動遞增列
- 16. 自動增量爲Oracle
- 17. MySQL:基於列值的自動遞增?
- 18. 對於Oracle中的非主鍵列自動遞增
- 19. 的Oracle SQL自動遞增PLS-00103
- 20. Oracle複合鍵自動遞增(減量!?)
- 21. 自動遞增ID值
- 22. 自動遞增的SQL值
- 23. 自動遞增列主鍵
- 24. 自動遞增兩列
- 25. 控制自動遞增列?
- 26. 在SQL中將C#變量設置爲自動遞增的列值的值?
- 27. Oracle:自定義自動增量:C0001 C0002
- 28. 在Neo4j中自動遞增
- 29. 在java中工作時重新排序自動遞增值
- 30. 指令中的遞增值