2014-01-23 74 views
-2

如何創建一個id爲1401cid001,其中14是01年的月份,而cid是comman textand 001會自動增加。現在14每年必須增加,01必須在新月初增加。以上兩點不得影響最後三位數字,因爲他們只有在年份增加後才能重新開始。請幫助如何在Mysql中自動增加主鍵值

+3

1)這是令人難以置信的愚蠢的事情。 2)爲此目的,您創建調用存儲過程或函數的觸發器。 3)有沒有內置**機制的東西。 4)但不是不重要的,請在做一些非常愚蠢的事情之前瞭解數據庫,在不知道PK用於什麼的情況下以某種奇怪的格式創建主鍵,這僅僅是針對關係數據的犯罪。 –

+0

@ N.B。我認爲你有點苛刻。 OP可能只需要包含id月和年的多個列的唯一索引。沒有必要讓他感到愚蠢。 – madebydavid

+0

@madebydavid - 將肥胖人稱爲肥胖也很難,因此發明了一個新詞 - 肥胖。這是同一件事。 **愚蠢的**在這種情況下是正確的術語,它不是針對OP而使他感覺不好。然而,這些問題存在一毛錢,缺乏研究就是徹頭徹尾的侮辱。 –

回答

0

爲此,

創建一個表,並保持主鍵的參考...

假設你有表的用戶,

id, name, email, password 

,並要添加鍵,像1401cid001 使用另一張桌子user_meta

id, user_id, user_unique_id 

在該表中,user_id說明users表,user_unique_id是你的唯一關鍵...

+0

謝謝。我現在知道了。你能告訴我一些在mysql中實現的例子嗎? – darthcoder

1

你永遠不會使用這樣的東西作爲你的主鍵。如果有一些非常引人注目的用例需要你這樣做,可以通過存儲一個標準的自動增量ID,create_date,command和可能的sequence_number來輕鬆構建它。

+0

好吧,我將生成一個正常的主鍵,那麼我應該使用唯一的鍵作爲我的查詢。 – darthcoder

+0

就像我剛纔提到的那樣,您可以使用數據生成所謂的唯一鍵顯示。除非使其他進程更容易,否則可能不需要將其作爲字符串存儲在數據庫中。 –