|
Почему в SQLite так криво работает автоинкремент?
|
|||
---|---|---|---|
#18+
Что то мне не нравится как работает автоинкремент в SQLite.. например, когда я делаю Код: sql 1.
, и вставка не происходит (потому что уже такое поле есть а там стоит уникальный ключ) то Код: sql 1.
возвращает 0, казалось бы все правильно. но если скажем последнее last_insert_rowi было 30 , потом два раза инсерт не произошел, а на третий прошел успешно - то следующее значение автоинкрементного поля будет уже 33 . почему так?? может лучше перед вставкой какждый раз искать максимальное значение поля с автоинкрементов в таблице и не пользоватся этой фишкой SQLite? или есть еще способы ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2017, 16:33 |
|
Почему в SQLite так криво работает автоинкремент?
|
|||
---|---|---|---|
#18+
lexalex83, читай доку почему не следует использовать автоинкремент ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2017, 17:47 |
|
Почему в SQLite так криво работает автоинкремент?
|
|||
---|---|---|---|
#18+
так ты ответь, по производительности это будет быстрее если я каждый раз буду искать максимальное ID ? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2017, 22:48 |
|
Почему в SQLite так криво работает автоинкремент?
|
|||
---|---|---|---|
#18+
Команды INSERT OR IGNORE/REPLACE нельзя использовать с автоинкрементным первичным ключом. Ни в одной СУБД которая понимает такой синтаксис. Это дополнение для INSERT предназначено только для натуральных ключей, или не автоматических суррогатных. lexalex83 так ты ответь, по производительности это будет быстрее если я каждый раз буду искать максимальное ID ? Прежде чем думать о производительности, подумай о правильности. Если если ты единственный пользователь базы - то можешь самостоятельно вести учет суррогатного ключа. Если у тебя есть шанс что в таблицу будут писать два пользователя - ручной подсчет суррогатного ключа становится невозможным. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2017, 18:45 |
|
|
start [/forum/topic.php?fid=54&fpage=4&tid=2008470]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
2ms |
others: | 255ms |
total: | 397ms |
0 / 0 |