上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
andybigbos
註冊時間: 2004-12-01 文章: 64 來自: 台中
第 1 樓
|
發表於: 星期二 五月 28, 2013 8:47 pm 文章主題: 請教~~SYS(2015)有無週期 |
|
|
請教各位大大.我在資料庫中用到 SYS(2015) 這個函數,把產生的值填入欄位中,想說應該不會重複,做為LOCAL VIEW 更新的主鍵值,但最近遇到可能重複的問題,造成主鍵值更新到多年前的資料,是否有大大知道如何得知讓 SYS(2015) 再RESET一次 或 改變SYS(2015)的自動取得的值??謝謝 |
|
回頂端 |
|
 |
garfield Site Admin

註冊時間: 2003-01-30 文章: 2160
第 2 樓
|
發表於: 星期二 五月 28, 2013 10:14 pm 文章主題: |
|
|
不管有無週期性, 隨機產生的值是有可能重複的,
如果一定要用sys(2015), 請再加上dateime(),
這樣重複的機率就少很多了. _________________ 利用>>搜尋<<的功能會比問的還要快得到答案. |
|
回頂端 |
|
 |
bx1166
註冊時間: 2011-12-06 文章: 273
第 3 樓
|
發表於: 星期三 五月 29, 2013 8:02 am 文章主題: |
|
|
我都是自己寫一段程式自己產生一個
我想一般都是需要一個獨一無二的代碼來表示這一個資料
年 月 日 時 分 秒 毫秒 各用英文字 或者數字去代表
那麼產生的一定是獨一無二的了
同時也代表了建立時的時間 |
|
回頂端 |
|
 |
andybigbos
註冊時間: 2004-12-01 文章: 64 來自: 台中
第 4 樓
|
發表於: 星期三 五月 29, 2013 9:36 am 文章主題: |
|
|
感謝以上二位大大的賜教我想我找到方法了 |
|
回頂端 |
|
 |
jerryclt
註冊時間: 2009-03-10 文章: 334 來自: 佛心來的
第 5 樓
|
發表於: 星期一 七月 29, 2013 5:32 pm 文章主題: |
|
|
bx1166 寫到: | 我都是自己寫一段程式自己產生一個
我想一般都是需要一個獨一無二的代碼來表示這一個資料
年 月 日 時 分 秒 毫秒 各用英文字 或者數字去代表
那麼產生的一定是獨一無二的了
同時也代表了建立時的時間 |
單工是OK的... |
|
回頂端 |
|
 |
bx1166
註冊時間: 2011-12-06 文章: 273
第 6 樓
|
發表於: 星期一 七月 29, 2013 7:03 pm 文章主題: |
|
|
多工也只是多了一個查核罷了 |
|
回頂端 |
|
 |
jerryclt
註冊時間: 2009-03-10 文章: 334 來自: 佛心來的
第 7 樓
|
發表於: 星期二 七月 30, 2013 11:17 am 文章主題: |
|
|
既然只是多了一個查核罷了,
小弟捨棄處理(年 月 日 時 分 秒 毫秒)的轉換程序,
直接用一組序列號以+1的方式來得到唯一的序號,
1.移動指標到最後一筆
2.鎖定
3.序號+1
然後......這個欄位是隱藏的,
再加上客戶看得懂的單號,
組合成一個沒有重複的序號! |
|
回頂端 |
|
 |
bx1166
註冊時間: 2011-12-06 文章: 273
第 8 樓
|
發表於: 星期二 七月 30, 2013 5:18 pm 文章主題: |
|
|
有些時候 會需要一些額外的稽核 來防止有心人隨意改資料 這時候的序號就可以賦予日期的意義 我以前還寫過 任何的更動 都加上人時的額外紀錄 所有的異動 都有跡可循 也算是防賊了 |
|
回頂端 |
|
 |
ckp6250
註冊時間: 2004-07-30 文章: 1645
第 9 樓
|
發表於: 星期三 七月 31, 2013 11:08 am 文章主題: |
|
|
不個不夠用三個,應該比較保險一點,而且,也簡單多了
SYS(3)+SYS(2015)+TRANSFORM(INT(RAND()*10000000)) |
|
回頂端 |
|
 |
|