without studio primary not create autoincrement auto_increment python sqlite

studio - AUTO_INCREMENT en sqlite problema con python



sqlite sequence auto_increment (3)

Estoy usando sqlite con python 2.5. Obtengo un error sqlite con la siguiente sintaxis. Miré a mi alrededor y vi AUTOINCREMENT en esta página http://www.sqlite.org/syntaxdiagrams.html#column-constraint pero eso tampoco funcionó. Sin AUTO_INCREMENT mi tabla puede ser creada.

An error occurred: near "AUTO_INCREMENT": syntax error CREATE TABLE fileInfo ( fileId int NOT NULL AUTO_INCREMENT, name varchar(255), status int NOT NULL, PRIMARY KEY (fileId) );



Tu podrías intentar

CREATE TABLE fileInfo ( fileid INTEGER PRIMARY KEY AUTOINCREMENT, name STRING, status INTEGER NOT NULL );


Esto se trata en las preguntas frecuentes de SQLite . Pregunta # 1 .

Que estados:

¿Cómo creo un campo AUTOINCREMENTO?

Respuesta corta: una columna declarada INTEGER PRIMARY KEY se autoincrementará.

Aquí está la respuesta larga: si declara que una columna de una tabla es INTEGER PRIMARY KEY, cada vez que inserta un NULL en esa columna de la tabla, el NULL se convierte automáticamente en un entero que es uno mayor que el valor más grande de esa columna sobre todas las otras filas en la tabla, o 1 si la tabla está vacía. (Si se trata de la clave entera más grande posible, 9223372036854775807, entonces se elige al azar un valor clave no utilizado). Por ejemplo, supongamos que tiene una tabla como esta:

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 llamada sqlite3_last_insert_rowid() que devolverá la clave entera para la operación de inserción más reciente.

Tenga en cuenta que la clave entera es una más grande que la clave más grande que estaba en la tabla justo antes de la inserción. La nueva clave será única en todas las claves actualmente en la tabla, pero puede superponerse con las claves que se eliminaron previamente de la tabla. Para crear claves que son ú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 en esa tabla. Si la clave más grande posible existía previamente en esa tabla, entonces INSERT fallará con un código de error SQLITE_FULL.