2013-08-20 2 views
0

Я хочу автоматически ввести значение/последовательность в поле MySQL. Вот моя последовательность:Создать последовательность в mysql

2342/ABC/2013/08/01 

Последняя моя последовательность как 01, 02, 03, и так далее.

правило, когда в месяц изменения, как в выше месяц 08, когда это 09 я хочу, чтобы начать последовательность снова от 01, 02 и так далее.

У меня есть таблица table1(Id,User_name,Sq_Number)

Я просто использовать этот

Insert into table1('User_name') values('BILL') 

Это вставит последовательность автоматически

+3

Нет простого способа сделать это, но вы можете, возможно, снять что-то подобное с помощью хранимых процедур. http://dev.mysql.com/doc/refman/5.0/en/stored-routines.html - не спрашивайте меня, хотя, я не очень хорошо знаком с ними. –

+2

Принимая во внимание, что, в отличие от многих разработчиков, я считаю, что размещение бизнес-логики на уровне базы данных, как правило, является хорошей идеей, в этом конкретном случае вам лучше вычислять значение последовательности в вашем PHP-коде. – marekful

+0

Что означает ** 2342 ** означает? Что означает ** ABC **? – gvee

ответ

0

Использование Перед вставкой триггера, что-то подобное (ниже я создаю последовательность из текущей даты), просто добавьте свою логику (это не ясно для меня).

CREATE trigger insert_processor 
BEFORE INSERT ON table1 
FOR EACH ROW BEGIN 
set new.Sq_Number = CONCAT('2342','/','ABC','/', DATE_FORMAT(NOW(),'%Y/%m/%d')); 

END$$ 

Если вам нужна уникальная последовательность, рекомендуется создать таблицу для этого и использовать select в триггере.