MySQL ограничение для столбца нумерации - PullRequest
1 голос
/ 26 января 2011

У меня есть ситуация, когда мне нужно хранить комплексный номер данных в базе данных. Примерно так 21/2011, где 21 - номер документа, а 2011 - год документа. Поэтому мне нужно некоторое ограничение для обработки уникальности, потому что есть документ с номерами 21/2010 и 21/2012.

Как я могу создать такое ограничение, когда нумерация начинается с 1, и выполняется проверка уникальности для значения комплексного числа?

Ответы [ 2 ]

0 голосов
/ 26 января 2011

В чем проблема, вы можете просто создать уникальный ключ для этих двух столбцов.

Другой способ - сохранить "21/2010" как один столбец varchar.

0 голосов
/ 26 января 2011
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, хотя вам придется указывать числа явно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...