|
|
|
Нужно найти несуществующую циферку! :)
|
|||
|---|---|---|---|
|
#18+
Вопрос наверное простой, и решаемый одним оператором, но мне найти не удалось. Имеется таблица, в которой есть поле с уникальными целыми значениями. При добавлении новой записи я нахожу максимальное существующее значение этого ключа в таблице, прибавляю единицу и присваиваю к новой записи. Но бывает, что приходится удалять записи из середины таблицы, и при этом значения уникальных ключей становятся незадействованными. Хотелось бы их задействовать, но не знаю как. Т.е. например было: 1 Колбаса 2 Картошка 3 Хлеб 4 Лимон после удаления Картошки получаем число 2 незадействованным, т.е. 1 Колбаса 3 Хлеб 4 Лимон Каким образом отловить эту двойку? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2003, 15:01 |
|
||
|
Нужно найти несуществующую циферку! :)
|
|||
|---|---|---|---|
|
#18+
Никаким образом этого нельзя делать в многопользовательском приложении. Если оно однопользовательское - писать в триггере цикл и перебирать все номера от нуля до первой цифры, по которой нет записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2003, 15:21 |
|
||
|
Нужно найти несуществующую циферку! :)
|
|||
|---|---|---|---|
|
#18+
А, ещё можно свободные номера после удаления в таблицу складывать отдельную и оттуда выбирать их. Если таблица пустая - тогда генерить номер обычным способом, иначе брать из таблицы и запись стирать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2003, 15:23 |
|
||
|
Нужно найти несуществующую циферку! :)
|
|||
|---|---|---|---|
|
#18+
Угу. Только делать это с блокировкой таблиц транзакцией, иначе - будут конфликты. Другой вопрос - зачем?! Генераторы не на пустом месте придумали, они именно для того, чтобы не было подобных извращений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2003, 15:25 |
|
||
|
Нужно найти несуществующую циферку! :)
|
|||
|---|---|---|---|
|
#18+
Если твои числа - id записи - лучше оставь ее в покое, а для "красивой" нумерации (видимо, для представления в гриде? для глаз начальства, юзера и т.п.) используй специальное поле. На форуме этот вопрос обсуждался недавно, поищи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2003, 15:44 |
|
||
|
Нужно найти несуществующую циферку! :)
|
|||
|---|---|---|---|
|
#18+
вот моя лекция на тему суррогатных ключей на mysql\r \r Словарь:\r \r моська - mysql\r \r read\r \r поиск по форуму со словом " суррогатный " показывает 85 (теперь 86) тем\r \r пора писать краткий фак по sql вобще ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2003, 16:04 |
|
||
|
Нужно найти несуществующую циферку! :)
|
|||
|---|---|---|---|
|
#18+
А, ещё можно свободные номера после удаления в таблицу складывать отдельную и оттуда выбирать их. Именно так и делал раньше. Я вообще то думал, что все проще можно сделать. Ну нет, так нет. Видимо вообще откажусь от этой дурацкой затеи - заделывать дыры. Всем спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2003, 16:41 |
|
||
|
Нужно найти несуществующую циферку! :)
|
|||
|---|---|---|---|
|
#18+
Владъ и откажись еще от одной затеи.... генерировать новый id на основе существующего.... это рещается при помощи ГЕНЕРАТОРОВ И ТОЛЬКО ИХ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2003, 04:34 |
|
||
|
Нужно найти несуществующую циферку! :)
|
|||
|---|---|---|---|
|
#18+
Для ID записи, конечно, нельзя этим заниматься, а для упорядочивания (счетов, товаров) .... Утром ... (раз в день) если временная таблица с номерами пустая, генеришь с поиском пустые номера в неё...и потом берешь из неё. А если в течении дня, то всегда новый номер, а то долго... И волки сыты и овцы целы... Почему один раз в день? Пустых много меньше, чем добавляется... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2003, 08:09 |
|
||
|
Нужно найти несуществующую циферку! :)
|
|||
|---|---|---|---|
|
#18+
а порядковые номера записей налету генерируются и нехрен засирать базу пустыми циферками... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2003, 11:38 |
|
||
|
Нужно найти несуществующую циферку! :)
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2003, 17:08 |
|
||
|
|

start [/forum/topic.php?fid=40&fpage=500&tid=1579793]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 365ms |

| 0 / 0 |
