P.S. Решение типа: "используй MySQL" - не подходят, интересует именно SQLite и именно версии 2 (версия БД, а не библиотеки).
Спустя 12 минут, 20 секунд (25.12.2008 - 20:17) kirik написал(а):
Цитата |
To create keys that are unique over the lifetime of the table, add the AUTOINCREMENT keyword to the INTEGER PRIMARY KEY declaration. |
Юзайте гугл, друзья, не даром на него просажено столько времени и денег =)
Спустя 47 минут, 23 секунды (25.12.2008 - 21:05) Wolfix написал(а):
С автоинкрементом вроде бы разобрался, спасибо г-ну kirik! Возникли ещё вопросы не совсем по теме, но близкие к ней... Из написанного здесь:
Скрытый текст |
http://sb-news.net/sqlite.php?page=6#q1 |
- следует, что одна таблица может одновременно содержать до 9223372036854775807 строк (и уникальных id, соответственно). При этом, поле id - имеет тип INTEGER, который в свою очередь имеет размер 8 байт, т.е. 99 999 999 - максимально возможное число... И при установке ключа AUTOINCREMENT, не случиться ли такое, что запись №100 000 000 вызовет тотальный глюк системы? Не хотелось бы через 2-3 года понять тот факт, что база накрылась из-за собственной не предусмотрительности...
И ещё вопросик: где можно найти толковую документацию по SQLite3 на русском? Google и пр. - ничего не дали (по крайней мере на Русском), а выяснить преимущества 3ей версии - очень хочется!
Всем ещё раз спасибо!
И ещё вопросик: где можно найти толковую документацию по SQLite3 на русском? Google и пр. - ничего не дали (по крайней мере на Русском), а выяснить преимущества 3ей версии - очень хочется!
Всем ещё раз спасибо!
Спустя 41 минута, 52 секунды (25.12.2008 - 21:47) kirik написал(а):
Вы считаете что у вас будет > 99 миллионов записей через 2 года? я - нет. Простая арифметика - 99.999.999 / 365 * 3 / 24 / 60 / 60 = ~ 1 запись в секунду каждую секунду в течении 3х лет.. Ваш ресурс будет на это способен?
Про различия ничего не скажу, ибо никогда не юзал SQLLite.
По теме.. нужно подтянуть английский до уровня читаю-понимаю. Это очень вам поможет в дальнейше жизни программиста (и не только) =)
UPD. тут инфа, тут перевод.
Про различия ничего не скажу, ибо никогда не юзал SQLLite.
По теме.. нужно подтянуть английский до уровня читаю-понимаю. Это очень вам поможет в дальнейше жизни программиста (и не только) =)
UPD. тут инфа, тут перевод.
Спустя 40 минут, 5 секунд (25.12.2008 - 22:27) Wolfix написал(а):
У меня английский на очень высоком уровне в плане "разговорный", "слушаю-пониаю" (например песню по радио) и тех. английский. А вот с переводом тех. статей - действительно сложно, особенно если статья о том, о чем сам мало догадываешься...

Спустя 12 часов, 18 минут, 23 секунды (26.12.2008 - 10:45) sergeiss написал(а):
Цитата (Wolfix @ 25.12.2008 - 21:05) |
При этом, поле id - имеет тип INTEGER, который в свою очередь имеет размер 8 байт, т.е. 99 999 999 - максимально возможное число... И при установке ключа AUTOINCREMENT, не случиться ли такое, что запись №100 000 000 вызовет тотальный глюк системы? Не хотелось бы через 2-3 года понять тот факт, что база накрылась из-за собственной не предусмотрительности... |
Извини, но ты неправильно считаешь

8 байт - это в ДВОИЧНОМ виде. А не так, как ты посчитал. А в восьми байтах в двоичном формате, да в знаковом виде, получим как раз число 9223372036854775807...
Для тех, кто мне не верит

1. Вызвать Калькулятор из Винды.
2. Переключиться в инженерный вид.
3. Включить режим HEX.
4. Ввести 16 раз F, т.е. 8 полных байт, заполненных единицами.
5. Переключиться в режим DEC.
6. Полученное число разделить на 2.
Сравнить полученный результат с искомым 9223372036854775807

Вывод: не парься, и смело используй INTEGER для своего ID.
И что касается английского. У тебя уже есть неплохая база, разберешься и с техническим переводом. Это, как раз, легче устной речи.
Спустя 42 минуты, 20 секунд (26.12.2008 - 11:27) Sylex написал(а):
8 байт = 8 * 8 = 64 бит (в 1 байте 8 бит)
2 в 64 степени = 18446744073709551616
т.к. число знаковое делим на 2:
9223372036854775808
т.е. от -9223372036854775808 до 9223372036854775807 (нолик не забываем)
type BIGINT
sergeiss, ты запутал людей 16-ной системой счисления
2 в 64 степени = 18446744073709551616
т.к. число знаковое делим на 2:
9223372036854775808
т.е. от -9223372036854775808 до 9223372036854775807 (нолик не забываем)
type BIGINT
sergeiss, ты запутал людей 16-ной системой счисления

Спустя 9 минут, 23 секунды (26.12.2008 - 11:37) sergeiss написал(а):
Цитата (Sylex @ 26.12.2008 - 11:27) |
sergeiss, ты запутал людей 16-ной системой счисления ![]() |
Ни разу!

Или ты тоже там же считал, а не вручную?

Спустя 1 час, 53 минуты, 6 секунд (26.12.2008 - 13:30) Alchemist написал(а):
А вручную - это на пальцах что ли ? 
Дикие люди - дети гор... Такие примеры давно пора в уме решать

Дикие люди - дети гор... Такие примеры давно пора в уме решать
