2015-07-03 31 views
3

基本上對於每個記錄我想要日期+遞增整數的主鍵,並且整數每天都會重置。由日期和自動遞增整數組成的字符串主鍵

這是可能的SQL?

編輯:感謝您的回覆。我會考慮在應用層做這件事,但痛苦的部分是訪問整數部分。另一種解決方案是在應用層計算date,更新/檢索整數,然後插入新記錄。然後在一天結束時重置變量。

+0

你可能想使用datenum的形式:http://stackoverflow.com/questions/6030071/mysql-table-insert-if-not-exist-otherwise-update;然後從記錄增量的datenum中刪除一天中的時間。 – jdl

+0

可能嗎?當然!好?一定不!只需使用2列:(自動)身份和日期。如果你創造了異國情調的野獸,他們就會回來並咬你一口 – jean

回答

2

「這在SQL中可能嗎?」

我建議具有與每個值(一個用於日期,一個用於整數)2行。

您需要的是以下內容:將NOW()值添加到字段的插入觸發器。然後將Integer連接到該日期。

而另一觸發如果你想在數字單調增加,那麼你必須實現鎖定機制,以防止併發插入整數值在一天(您選擇的時間)的變化

1

復位。如果你只有一個會話插入數據,那很好,但是多個會話很困難。

這是一個非常糟糕的併發設計模式,你會用常規的序列生成的PK,單獨的日期列和另一列與數字序列異步填充。