Samenvatting :in deze tutorial leer je hoe je de SQLite UNIQUE
. gebruikt beperking om ervoor te zorgen dat alle waarden in een kolom of een groep kolommen uniek zijn.
Inleiding tot SQLite UNIQUE
beperking
Een UNIQUE
beperking zorgt ervoor dat alle waarden in een kolom of een groep kolommen van elkaar verschillen of uniek zijn.
Een UNIQUE
definiëren beperking, gebruik je de UNIQUE
zoekwoord gevolgd door een of meer kolommen.
U kunt een UNIQUE
. definiëren beperking op kolom- of tabelniveau. Alleen op tabelniveau kunt u een UNIQUE
. definiëren beperking over meerdere kolommen.
Hieronder ziet u hoe u een UNIQUE
. definieert beperking voor een kolom op kolomniveau:
CREATE TABLE table_name(
...,
column_name type UNIQUE,
...
);
Code language: SQL (Structured Query Language) (sql)
Of op tafelniveau:
CREATE TABLE table_name(
...,
UNIQUE(column_name)
);
Code language: SQL (Structured Query Language) (sql)
Het volgende illustreert hoe u een UNIQUE
. definieert beperking voor meerdere kolommen:
CREATE TABLE table_name(
...,
UNIQUE(column_name1,column_name2,...)
);
Code language: SQL (Structured Query Language) (sql)
Eens een UNIQUE
beperking is gedefinieerd, als u probeert een waarde in te voegen of bij te werken die al in de kolom bestaat, geeft SQLite een fout en breekt de bewerking af.
SQLite UNIQUE
voorbeelden van beperkingen
Laten we enkele voorbeelden nemen van het gebruik van de UNIQUE
beperking.
Een UNIQUE
definiëren beperking voor één kolom voorbeeld
De volgende instructie maakt een nieuwe tabel aan met de naam contacts
met een UNIQUE
beperking gedefinieerd voor de email
kolom:
CREATE TABLE contacts(
contact_id INTEGER PRIMARY KEY,
first_name TEXT,
last_name TEXT,
email TEXT NOT NULL UNIQUE
);
Code language: SQL (Structured Query Language) (sql)
In het volgende voorbeeld wordt een nieuwe rij ingevoegd in de contacts
tafel:
INSERT INTO contacts(first_name,last_name,email)
VALUES ('John','Doe','[email protected]');
Code language: SQL (Structured Query Language) (sql)
Als u probeert een nieuw contact met hetzelfde e-mailadres in te voegen, krijgt u een foutmelding:
INSERT INTO contacts(first_name,last_name,email)
VALUES ('Johnny','Doe','[email protected]');
Code language: SQL (Structured Query Language) (sql)
Hier is de foutmelding:
Error while executing SQL query on database 'chinook': UNIQUE constraint failed: contacts.email
Code language: SQL (Structured Query Language) (sql)
Een UNIQUE
definiëren beperking voor meerdere kolommen voorbeeld
De volgende instructie creëert de shapes
tafel met een UNIQUE
beperking gedefinieerd voor de background_color
en foreground_color
kolommen:
CREATE TABLE shapes(
shape_id INTEGER PRIMARY KEY,
background_color TEXT,
foreground_color TEXT,
UNIQUE(background_color,foreground_color)
);
Code language: SQL (Structured Query Language) (sql)
De volgende instructie voegt een nieuwe rij in de shapes
. in tafel:
INSERT INTO shapes(background_color,foreground_color)
VALUES('red','green');
Code language: SQL (Structured Query Language) (sql)
De volgende verklaring werkt omdat er geen duplicatie-schending is in zowel background_color
en foreground_color
kolommen:
INSERT INTO shapes(background_color,foreground_color)
VALUES('red','blue');
Code language: SQL (Structured Query Language) (sql)
De volgende instructie veroorzaakt echter een fout vanwege de duplicaten in beide background_color
en foreground_color
kolommen:
INSERT INTO shapes(background_color,foreground_color)
VALUES('red','green');
Code language: SQL (Structured Query Language) (sql)
Hier is de fout:
Error while executing SQL query on database 'chinook': `UNIQUE` constraint failed: shapes.background_color, shapes.foreground_color
Code language: SQL (Structured Query Language) (sql)
SQLite UNIQUE
beperking en NULL
SQLite behandelt dat alle NULL-waarden verschillend zijn, daarom is een kolom met een UNIQUE
beperking kan meerdere NULL-waarden hebben.
De volgende instructie maakt een nieuwe tabel aan met de naam lists
wiens email
kolom heeft een UNIQUE
beperking:
CREATE TABLE lists(
list_id INTEGER PRIMARY KEY,
email TEXT UNIQUE
);
Code language: SQL (Structured Query Language) (sql)
De volgende instructie voegt meerdere NULL-waarden in de email
kolom van de lists
tafel:
INSERT INTO lists(email)
VALUES(NULL),(NULL);
Code language: SQL (Structured Query Language) (sql)
Laten we gegevens opvragen uit de lists
tafel:
SELECT * FROM lists;
Code language: SQL (Structured Query Language) (sql)
Hier is de uitvoer:
Zoals je kunt zien, heeft de e-mailkolom een UNIQUE
beperking, kan het meerdere NULL-waarden accepteren.
In deze tutorial heb je geleerd hoe je de SQLite UNIQUE
. gebruikt beperking om ervoor te zorgen dat alle waarden in een kolom of een groep kolommen uniek zijn.