In CREATE TABLE SQL, we can add UNIQUE constraints in any way: column-constraint or table-constraint. My question is simple. Do they work differently?
The only difference I can find is that in a table constraint, there may be multiple index columns in a single constraint.
Columns Constraints:
Table constraints:
This is an example:
CREATE TABLE Example (
_id INTEGER PRIMARY KEY ,
name TEXT UNIQUE ON CONFLICT REPLACE,
score INTEGER
)
and
CREATE TABLE Example (< br /> _id INTEGER PRIMARY KEY,
name TEXT,
score INTEGER,
UNIQUE (name) ON CONFLICT REPLACE
)
Are they different?
But , You can create a unique constraint on the table that will span two different columns. Like this:
CREATE TABLE Example (
_id INTEGER PRIMARY KEY ,
name TEXT,
index INTEGER,
score INTEGER,
UNIQUE (name, index) ON CONFLICT REPLACE
)
For more information , Please refer to this post:
SQLite table constraint – unique on multiple columns
Questions about SQLite.
In CREATE TABLE In SQL, we can add UNIQUE constraints in either way: column-constraint or table-constraint. My question is simple. Do they work differently?
The only difference I can find is that in the table In constraints, there may be multiple index columns in a single constraint.
Column constraints:
Table constraints:
This is an example:
< p>
CREATE TABLE Example (
_id INTEGER PRIMARY KEY,
name TEXT UNIQUE ON CONFLICT REPLACE,
score INTEGER
)
and
CREATE TABLE Example (
_id INTEGER PRIMARY KEY,
name TEXT,
score INTEGER,
UNIQUE (name ) ON CONFLICT REPLACE
)
Are they different?
In this case, there is no difference.
However, you can create a unique constraint on the table, the Constraints will span two different columns. Like this:
CREATE TABLE Example (
_id INTEGER PRIMARY KEY,
name TEXT,
index INTEGER,
score INTEGER,
UNIQUE (name, index) ON CONFLICT REPLACE
)
For more information, please refer to this post:
SQLite table constraint – Unique on multiple columns