2011-01-26 116 views
1

當我必須在數據庫中存儲複雜數據編號時,我有這種情況。類似於21/2011其中21是文檔編號,但2011是文檔年。所以我需要一些約束來處理唯一性,因爲有文件編號爲21/201021/2012計算列的MySQL約束

如何在編號從1開始時創建這樣的約束,並且對複數值有唯一性檢查?

回答

0
CREATE TABLE documents 
     (
     year INT NOT NULL, 
     no INT AUTO_INCREMENT, 
     PRIMARY KEY (year, no) 
     ) ENGINE=MyISAM; 

INSERT 
INTO documents(year) 
VALUES (2010), 
     (2010), 
     (2011); 

SELECT * 
FROM documents; 

不幸的是,AUTO_INCREMENT部分將只爲MyISAM表的工作,但是,唯一性檢查將在InnoDB工作爲好,但你必須明確提供的數字。

0

什麼問題,你可以簡單地在這兩列上創建一個唯一的鍵。

另一種方法是將「21/2010」存儲爲單個varchar列。