|
|
|
|
|
для: Trianon
(19.02.2007 в 20:13)
| | Замечательно!
Объяснили! Спасибо всем! | |
|
|
|
|
|
|
|
для: Ralph
(19.02.2007 в 20:03)
| | Только нужно помнить, что без ORDER BY конструкция LIMIT n теряет смысл.
Так что "дай мне десять записей в порядке возрастания(убывания) чего-нибудь." | |
|
|
|
|
|
|
|
для: cheops
(19.02.2007 в 18:27)
| | Это,по моему,та ошибка,через которую проходят 80% изучавших БД,я вон сам неделю в непонятках был... :-) В этом и прелесть баз,что тебе не надо все до мелочей знать,как идет нумерация,есть ли в ней дырки,и все это подробно базе расжевывать...Ты просто говоришь базе:'дай мне первых десять записей (LIMIT 10) ',и тебе параллельно,как они нумерованы:1,2,3,4,5 или 1,3,4,16,92-это уже проблема базы,пусть она сама разбирается :-) | |
|
|
|
|
|
|
|
для: mehelson
(19.02.2007 в 17:04)
| | А зачем нужно чтобы ключи были упорядочены? Как правило, их для нумерации не используют, а генерируют порядковые номера в цикле вывода. | |
|
|
|
|
|
|
|
для: cheops
(19.02.2007 в 13:29)
| | Объясните, пожалуйста, каким именно значением аlтеr_sрес оператора аltеr таblе воспользоваться?
Вот что делаю: есть столбец sеssion, регистрирующийся получает письмо со ссылкой типа: "http://".$_SERVER['SERVER_NAME']."script.php?session=$id_session"
Сравниваю с даннъми из базы и если это они -
UPDATE table SET session='NULL' WHERE session=$id_session;
тогда нумерация ключа не меняется, а если нет подтверждения, удаляю DELETE...INTERVAL... и вот тогда ключи в беспорядке. Или вообще не в том русле?
Спасибо! | |
|
|
|
|
|
|
|
для: mehelson
(19.02.2007 в 12:47)
| | Нет, удалив столбец с первичным ключём и создав его по-новой при помощи ALTER TABLE - в этом случае автоматически будет сгенерирована последовательность 1, 2, 3, ... без пропусков. | |
|
|
|
|
|
|
|
для: cheops
(19.02.2007 в 12:36)
| | >Только удалив столбец и воссоздав его по-новой.
т.е создав запись с тем же ключом, что и удаленная ?
Если я все правильно понял можете не отвечать...
Спасибо ! | |
|
|
|
|
|
|
|
для: mehelson
(19.02.2007 в 12:24)
| | Это нормальное поведение, каждая запись имеет уникальный ключ - автоинкрементное поле не должно быть монотонно-возрастающим - оно должно быть уникальным.
>"переиндексировать или реконструировать"
Только удалив столбец и воссоздав его по-новой. | |
|
|
|
|
|
|
|
для: mehelson
(19.02.2007 в 12:24)
| | это не влияет.
И вообще, автоинкремент - это ни какой не нумератор. Это всего лишь простейшее средство получать различающиеся первичные ключи. На этом его роль заканчивается. | |
|
|
|
|
|
|
| Здравствуйте !
Научите...
После удаления последней записи в таблице, допустим с ключом = 5, (NOT NULL AUTO_INCREMENT)
DELETE FROM users WHERE id_user=5;
новая запись
INSERT INTO users VALUE ( 0, var, var, ..., ...);
добавляется не с этим ключом = 5, а ей присваивается новый номер = 6...
и так далее...
Предположим пришлось удалить 10 записей в разнобой...
остались с номерами 1,3,5,7
А новая запись получит ключ = 11, а оставшиеся так и останутся со своими первоначальными номерами...
как быть ? как "переиндексировать или реконструировать" записи ?
чтобы первая в таблице запись имела ключ именно 1, вторая 2 и т.д.
или это не влияет ни на что и это просто у меня "локально" так представляется
Извините если криво изложил проблему...
Спасибо ! | |
|
|
|
|