2012-10-02

[DB] 用timestamp當成Oracle的自動編號流水號

Oracle並沒有像SQL Server一樣方便設定不重覆的流水號欄位,必須建立Sequence才行。

如果你只是要一個不重覆的欄位來當Key值就好,並不需要有規則,這時就可以用內定參數current_timestamp來用。

current_timestamp可以產生系統目前的時間,格式類似2012/09/11 14:20:22.9877460,因為它取到的值很小,所以不怕會重覆。

建立方式很簡單,先新增一個欄位,欄位型態選用TIMESTAMP,以及設定成不可Null,然後在Default Value填入current_timestamp即完成。

如果你想在已存在內容的Table加上這種欄位,那你要先將此Table的內容匯出備份起來,再把原有的內容都刪掉,之後如上述方法新增好欄位後再匯入備份的資料,此欄位在匯入時就會自動產生不同的current_timestamp並填入了,而且不會重覆。


以上方式是用Oracle 10g 搭配PL/SQL管理工具。

沒有留言:

張貼留言