autoincrement

clevel

Новичок
autoincrement

тут обнаружид очень полезную фичу в мускуле, по ману ее явно не прослеживается..
всем известно, что если в таблице сделать интовое поле с ключом uniq/primary и поставить autoincrement, то при добавлении записи увеличивается счетчик этого поля..
а мне как-то понадобилось сделать счетчик в зависимости от еще одного поля, то есть:
owner(владелец сайта), id(номер сайта владельца), и для каждого owner свой счетчик в id.
Выход был прост: делаем uniq/primary на owner,id, id->autoincrement.
Теперь для каждого владельца - свой счетчик с единицы, плюс если удаляем некоторые записи, то счетчик начинает считать не с последнего значения, установленного до удаления, а с последнего дя данного юзера на момент вставки(пример, для владельца №1 были записи 1,2,3,4; удалили записи 2,3,4 -> счетчик при следующей вставке выдаст №2).
 

ForJest

- свежая кровь
auto_increment для этого не предназначен. Он обеспечивает лишь уникальность 1-го поля в каждой таблице. Поэтому он очень полезен для того чтобы использовать его в primary key. Где его обычно и используют.
 

clevel

Новичок
auto_increment для этого не предназначен. Он обеспечивает лишь уникальность 1-го поля в каждой таблице. Поэтому он очень полезен для того чтобы использовать его в primary key. Где его обычно и используют.
да это понятно... я его так и использовал ранее.. однако тут понадобилась именно такая фишка... я было ринулся делать с одним полем-счетчиком, потом обнаружил данную фичу и спокойно начал делать так, как и задумывалось...
мелочь, а приятно...
 

Апельсин

Оранжевое создание
> auto_increment для этого не предназначен.

и для этого его тоже можно использовать на MyISAM и BDB таблицах и об этом тоже написано в мануале.

> Он обеспечивает лишь уникальность 1-го поля в каждой таблице.

Есть такое понятие как составной ключ, так вот использовать автоинкремента в составном ключе, тоже иногда бывает полезно.
 

ForJest

- свежая кровь
Нда. Я так признаться и не понял про что это :) Видать понадобиться - пойму...
А ссылочку можно на главу мана?
 

clevel

Новичок
Есть такое понятие как составной ключ, так вот использовать автоинкремента в составном ключе, тоже иногда бывает полезно.
вот у меня так и случилось...
хотя можно и как простой ключ, но для более правильной логии приложения надо составной....
кстати, в мане под 3.51 кажется мускул нет такого описания счетчика, я специально смотрел, так как проверял, не глюк ли это мускула только на моей машине...
оказалось, не глюк... за что спасибо разработчикам :))
 

Апельсин

Оранжевое создание
> А ссылочку можно на главу мана?

вот лентяи развелись! "auto_increment" им сложно в поиске набрать ! :)

http://www.mysql.com/doc/en/example-AUTO_INCREMENT.html
 
Сверху