2011-12-15 19 views
15

Tengo la siguiente consulta SQLite:SQLite: autoincrement preguntas claves primarias

CREATE TABLE Logs (Id integer IDENTITY (1, 1) not null CONSTRAINT PKLogId PRIMARY KEY, ... 
  1. IDENTITY (1, 1) -> ¿Qué significa esto?
  2. PKLogId ¿Qué es esto? Esto no parece estar definido en ningún lugar
  3. Quiero que Id sea integer primary key con autoincrement. Me gustaría poder insertar en esta tabla Logs omitiendo la columna Id en mi consulta. Quiero que Id se agregue e incremente automáticamente. es posible? ¿Cómo puedo hacer esto?

En el momento en que intenta insertar sin Id me sale:

Error while executing query: Logs.Id may not be NULL 
+0

Parece la sintaxis de SQL Server. –

+0

Sí, esta consulta 'Crear tabla' se convirtió de SQL Server a SQLite – Caner

Respuesta

56

No estoy seguro de si en realidad estás usando SQLite de acuerdo con la sintaxis de su ejemplo.

Si usted es, usted puede estar interesado en SQLite FAQ #1: How do I create an AUTOINCREMENT field?:

Respuesta corta: Una columna declarada INTEGER PRIMARY KEY se incremento automático.

+9

Mi problema fue que había usado INT en vez de INTEGER. gracias por la respuesta –

11

Cambiar a:

CREATE TABLE Logs (Id integer PRIMARY KEY,.... 
0

Si es así, usted puede estar interesado en SQLite FAQ # 1: ¿Cómo se crea un campo AutoIncrement ?:

Respuesta corta: Una columna declarada INTEGER PRIMARY KEY se incrementará automáticamente.

Esto, de hecho, no es del todo exacto. Sin embargo, si la tabla descarta todas las filas, comienza de nuevo desde el principio. Es importante si desea tener todos los registros asociados vinculados correctamente para usar la descripción de autoincrement después de la declaración de la clave principal en el campo entero. .

Cuestiones relacionadas