Lorsque vous utilisez
CREATE TABLE data(a INTEGER PRIMARY KEY, b, ...)
la traditionnelle colonne supplémentaire (cachée) rowid
ne sera pas là : la chronique a
lui-même sera l'identifiant de la ligne.
En effet, le doc États :
En SQLite, une colonne avec le type INTEGER PRIMARY KEY est un alias pour le ROWID (sauf dans les tables WITHOUT ROWID) qui est toujours un entier signé de 64 bits.
y également
si une table [...] a une clé primaire qui consiste en une seule colonne et que le type déclaré de cette colonne est "INTEGER" [...], alors la colonne devient un alias pour le rowid .
Depuis a
est l'identifiant de la ligne, aucun index n'est nécessaire, les requêtes sur la colonne a
sera rapide grâce à la structure B-tree :
Les données [...] sont stockées sous la forme d'une structure B-Tree contenant une entrée pour chaque ligne de la table, la valeur rowid servant de clé.
Note : la partie [...] que je n'ai pas citée est relative aux précisions sur les différences entre les tableaux normaux et les tableaux avec la fonction WITHOUT ROWID
clause, mais c'est totalement hors sujet ici.