Realizzo un wrapper di API SQLite C. E voglio tornare a rowid come tipo intero. Per contrassegnare il caso di errore, ho bisogno di un valore non valido del rowid. Esiste il valore non valido di rowid SQLite? O tutti i valori in interi a 64 bit con segno sono validi per rowid? (perché se lo è, devo scegliere un altro modo per implementare il caso di errore di marcatura)Intervallo valido di rowid SQLite?
risposta
Gli ID di riga sono numeri interi con segno a 64 bit, quindi il massimo è 0x7FFFFFFFFFFFFFFFFLL. Ma a meno che un ID riga negativo o zero sia stato inserito esplicitamente, gli ID di riga generati automaticamente sono sempre maggiori di zero. Se si è certi che gli ID di riga verranno sempre generati automaticamente, zero o -1 sarebbero valori sicuri per i ritorni di stato degli errori.
Pensando ulteriormente, mi rendo conto che la chiamata API sqlite3_last_insert_rowid
restituisce zero se non è mai stato inserito nulla nella tabella, rendendo così zero un ID riga "non valido" di fatto.
Grazie per aver menzionato lo zero esplicito e i valori negativi possono essere inseriti. Andrò qualcosa di altro meccanismo. :) – Eonil
- 1. sqlite ottenere ROWID
- 2. Perché non si può usare SQLite ROWID come chiave primaria?
- 3. Qual è rowID & ROWNUM (ROWID vs ROWNUM)
- 4. sed "Fine intervallo non valido"
- 5. Equivalente di RowID di Oracle in MySQL
- 6. Perché il riferimento a un rowid SQLite causa una mancata corrispondenza della chiave esterna?
- 7. Equivalente di RowID di Oracle in SQL Server
- 8. Indice parametri fuori intervallo
- 9. Eliminazione di righe duplicate dal database sqlite
- 10. Notifica di modifica del database Oracle e ROWID
- 11. Android: design one-to-many di SQLite
- 12. Intervallo di polilinee Intervallo di frigoriferi Gamma
- 13. SQLITE - cancella le righe con inner join?
- 14. sqlite android sqlite sincronizzazione sqlite
- 15. Ordina un'intera tabella SQLite
- 16. Numero intero fuori intervallo
- 17. Expandablelistview estende simplecursoradapter da popolare da sqlite
- 18. Intervallo reale scala, intervallo intermedi
- 19. Intervallo doppio intervallo tempo standard
- 20. val.replace (/ [^ a-zA-Z_-0-9]/g, '') produce SyntaxError: intervallo non valido nella classe di caratteri
- 21. Intestazione intervallo HTTP
- 22. SQLite Eccezione: SQLite Occupato
- 23. Come specificare un intervallo di caratteri Unicode
- 24. Gruppo SQLITE per
- 25. Come stabilire se il file di database sqlite è valido o meno
- 26. Sqlite SELECT * per ultimi 7 giorni
- 27. Durata intervallo di tempo
- 28. intervallo di visualizzazione piacevolmente
- 29. Selezionare numeri tra un intervallo (da 1 a 100) in sqlite
- 30. Gruppo per intervallo di date settimane/mesi intervallo
Ecco le specifiche su rowid: http://www.sqlite.org/autoinc.html – Eonil