Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Автонумерация документов в базе (Евгений) 18/04/2006 - 06:24:08
      Re: Автонумерация документов в базе (Dinky) 18/04/2006 - 18:59:07
      Re: поправка (Dinky) 18/04/2006 - 19:00:45
      Re: поправка (Евгений) 19/04/2006 - 05:16:59
      Re: поправка (Dinky) 19/04/2006 - 18:53:22

> Original message text:
> From: Евгений - 18/04/2006 - 06:24:08
> Subject:Автонумерация документов в базе
> -----------------
> Уважаемые коллеги! Наверное тема автоинкрементов уже измусолена, но как не странно, я не нашел ответа на свой вопрос.
>
> Автоинкремент - это хорошо. А кто нибудь может посоветовать, как лучше сделать автонумерацию счетов или кассовых документов в базе?
> Причем нумерация в новом году должна начинаться сначала, т.е. номера будут уникальными только на протяжении года.
> Удалять насильно данные по прошлому году нельзя, тем более, только ради корректной автонумерации - это глупость.
> И самое главное! Работать могут параллельно несколько пользователей по сети, так что выяснение сначала через SELECT MAX, а потом INSERT вида NUM=MAX+1 не подойдет.
>
> Хм...Как это вообще делается в умных бухгалтерских программах.
>
> Заранее благодярю.
>
>


From: Dinky - 18/04/2006 - 18:59:07
Subject:Автонумерация документов в базе
-----------------
как делается в "умных бухгалтерских программах" не скажу, а с автоинкрементом можно сделать так - создать два поля:
doc_year medium int unsigned not null,
doc_num int unsigned not null,
primary key (doc_year, doc_num)
и вставлять записи:
INSERT INTO table SET doc_year=year(curdate()), ...
тогда mysql сам будет поддерживать автоинкремент "внутри" каждого года
Задавать самому значение автоинкремента - не надо, это работа сервера ;)
После вставки новой записи в контексте того же соединения LAST_INSERT_ID() вернет значение автоинкремента для вставленной записи. Не имеет значения сколько параллельно вставок было сделано - для каждого соединения будет свое LAST_INSERT_ID()

--
Dmitry


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
27419



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |