¿Cómo se crea un campo AutoIncrement ?
Respuesta corta: Una columna declarada INTEGER PRIMARY KEY será autoincrement.
Aquí está la respuesta larga: Si declara una columna de una tabla para ser INTEGER PRIMARY KEY, entonces cada vez que inserta un valor NULL en la columna de la tabla , el NULL es automáticamente convertido en un entero que es uno mayor que el valor más grande de esa columna sobre todas las demás filas en la tabla , o 1 si la tabla está vacía. (. Si la mayor clave entera posible, 9223372036854775807, a continuación, un valor de la clave no utilizado se elige al azar) Para ejemplo, suponga que tiene una tabla como esto:
CREATE TABLE t1( a INTEGER PRIMARY
KEY, b INTEGER);
Con esta tabla, la declaración
INSERT INTO t1 VALUES(NULL,123);
es lógicamente equivalente a decir:
INSERT INTO t1 VALUES((SELECT max(a) FROM t1)+1,123);
hay una función llamado sqlite3_last_insert_rowid()
que devolverá la clave de enteros para la operación de inserción más reciente.
Tenga en cuenta que la clave entera es una mayor que la clave más grande que era en la tabla justo antes de la inserción. La nueva clave será única en todas las claves actualmente en la tabla, pero podría superponerse con claves que han sido previamente eliminadas de la tabla. Para cree claves que sean únicas durante la vigencia de la tabla , agregue la palabra clave AUTOINCREMENT a la declaración INTEGER PRIMARY KEY. Entonces, la clave elegida será una más que la clave más grande que haya existido alguna vez en en esa tabla. Si anteriormente existía la clave más grande posible en esa tabla , entonces INSERT fallará con un código de error SQLITE_FULL.
me gusta este tipo de respuestas. Deberías comprimirlo en RTFM :) – lmsasu