|
|
|
| В БД три поля ID-первичный ключ и автоинкрементное
id s n
1 1 один
2 2 два
7 3 три
16 4 четыре
|
Удаляем строку с id=7
получаем дырку в нумерации по столбцу s
id s n
1 1 один
2 2 два
16 4 четыре
|
Как пересчитать столбец s чтобы получить
id s n
1 1 один
2 2 два
16 3 четыре
|
| |
|
|
|
|
|
|
|
для: serjinio
(27.06.2008 в 00:34)
| | совершенно ненужный столбец и совершенно ненужная операция (нумерация "по порядку").
никакого порядка в базе нет. порядок можно установить только при выборке - ORDER BY ...
ASC или DESC. счетчик организуется в цикле с 1 до последнего выбранного значения. | |
|
|
|
|
|
|
|
для: elenaki
(27.06.2008 в 10:19)
| | для моей задачи нужный, поэтому и его и ввел | |
|
|
|
|
|
|
|
для: serjinio
(27.06.2008 в 13:57)
| |
UPDATE tbl
SET s = s - 1
WHERE s > 3
|
| |
|
|
|
|
|
|
|
для: serjinio
(27.06.2008 в 00:34)
| | какой столбец автоинкрементый? | |
|
|
|
|
|
|
|
для: ronin80
(27.06.2008 в 11:46)
| | Автоинкрементный ID | |
|
|
|
|
|
|
|
для: serjinio
(27.06.2008 в 13:56)
| | а если таких дырок несколько, например
1
3
4
6
7
9
то получается должен быть массив содержащий набор этих высвободившихся номеров из которого по порядку и будут выбираться номера, так?
или просто необходимо запустить цикл по таблице и разом проставить эти номера? перенумеровать в определённый момент? | |
|
|
|