数字列的MySQL约束

时间:2011-01-26 12:32:29

标签: mysql constraints

我必须在数据库中存储复杂的数据。像21/2011那样21是文档编号,但2011是文档年。因此,我需要一些约束来处理唯一性,因为存在编号为21/201021/2012的文档。

如果从1开始编号并且对复数值进行唯一性检查,我该如何创建这样的约束?

2 个答案:

答案 0 :(得分: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,但您必须明确提供这些数字。

答案 1 :(得分:0)

问题是什么,您只需在这两列上创建唯一键即可。

另一种方法是将“21/2010”存储为单个varchar列。