column sqlite unique-constraint compound-key

Restricción de tabla SQLite: única en múltiples columnas



sqlite rename column (2)

Bueno, tu sintaxis no coincide con el enlace que incluiste, que especifica:

CREATE TABLE name (column defs) CONSTRAINT constraint_name -- This is new UNIQUE (col_name1, col_name2) ON CONFLICT REPLACE

Puedo encontrar "gráficos" de sintaxis en este sitio web de SQLite, pero no hay ejemplos y mi código está fallando. Tengo otras tablas con restricciones únicas en una sola columna, pero quiero agregar una restricción a la tabla en dos columnas. Esto es lo que tengo que está causando una excepción SQLiteException con el mensaje "error de sintaxis".

CREATE TABLE name (column defs) UNIQUE (col_name1, col_name2) ON CONFLICT REPLACE

Estoy haciendo esto basado en lo siguiente:

table-constraint

Para que quede claro, la documentación en el enlace que proporcioné dice que el CONTSTRAINT name debe venir antes de mi definición de restricción.

Sin embargo, algo que puede conducir a la solución es que lo que sigue a mis definiciones de columnas entre paréntesis es de lo que se queja el depurador.

Si pongo

...last_column_name last_col_datatype) CONSTRAINT ...

el error está cerca de "RESTRICCIÓN": error de sintaxis

Si pongo

...last_column_name last_col_datatype) UNIQUE ...

el error está cerca de "ÚNICA": error de sintaxis


Coloque la declaración UNIQUE dentro de la sección de definición de columnas:

CREATE TABLE name (column defs, UNIQUE (col_name1, col_name2) ON CONFLICT REPLACE);

Ejemplo de trabajo:

CREATE TABLE a (i INT, j INT, UNIQUE(i, j) ON CONFLICT REPLACE);