Zusammenfassung :In diesem Tutorial lernen Sie, wie Sie den SQLite REPLACE
verwenden Anweisung zum Einfügen oder Ersetzen der vorhandenen Zeile in einer Tabelle.
Einführung in SQLite REPLACE
Erklärung
Die Idee des REPLACE
Aussage ist das, wenn ein UNIQUE
oder PRIMARY KEY
eine Einschränkungsverletzung auftritt, geschieht Folgendes:
- Löschen Sie zuerst die vorhandene Zeile, die eine Einschränkungsverletzung verursacht.
- Zweitens, fügen Sie eine neue Zeile ein.
Im zweiten Schritt, wenn eine Einschränkungsverletzung vorliegt, z. B. NOT NULL
Einschränkung auftritt, die REPLACE
-Anweisung wird die Aktion abbrechen und die Transaktion rückgängig machen.
Im Folgenden wird die Syntax von REPLACE
veranschaulicht Erklärung.
INSERT OR REPLACE INTO table(column_list)
VALUES(value_list);
Code language: SQL (Structured Query Language) (sql)
Oder in Kurzform:
REPLACE INTO table(column_list)
VALUES(value_list);
Code language: SQL (Structured Query Language) (sql)
Sehen wir uns einige Beispiele für die Verwendung von SQLite REPLACE
an Erklärung, um zu verstehen, wie es funktioniert.
Das SQLite REPLACE
Anweisungsbeispiele
Erstellen Sie zunächst eine neue Tabelle mit dem Namen positions
mit folgender Struktur.
CREATE TABLE IF NOT EXISTS positions (
id INTEGER PRIMARY KEY,
title TEXT NOT NULL,
min_salary NUMERIC
);
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
Zweitens fügen Sie einige Zeilen in die positions
ein Tabelle.
INSERT INTO positions (title, min_salary)
VALUES ('DBA', 120000),
('Developer', 100000),
('Architect', 150000);
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
Drittens überprüfen Sie die Einfügung mit dem folgenden SELECT
Erklärung.
SELECT * FROM positions;
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
Die folgende Anweisung erstellt einen eindeutigen Index für title
Spalte der positions
Tabelle, um sicherzustellen, dass es keine doppelten Positionstitel gibt:
CREATE UNIQUE INDEX idx_positions_title
ON positions (title);
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
Angenommen, Sie möchten eine Position zu den positions
hinzufügen Tabelle, wenn sie nicht existiert, falls die Position existiert, aktualisieren Sie die aktuelle.
Das folgende REPLACE
-Anweisung fügt eine neue Zeile an den positions
ein Tabelle, da die Positionsbezeichnung Full Stack Developer
ist steht nicht in den positions
Tabelle.
REPLACE INTO positions (title, min_salary)
VALUES('Full Stack Developer', 140000);
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
Sie können den REPLACE
überprüfen Operation mit SELECT
Erklärung.
SELECT
id,title,min_salary
FROM
positions;
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
Siehe folgende Anweisung.
REPLACE INTO positions (title, min_salary)
VALUES('DBA', 170000);
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
Zuerst überprüfte SQLite den UNIQUE
Einschränkung.
Zweitens, weil diese Anweisung den UNIQUE
verletzt hat Einschränkung, indem Sie versuchen, den DBA
hinzuzufügen Titel, der bereits vorhanden ist, hat SQLite die vorhandene Zeile gelöscht.
Drittens fügte SQLite eine neue Zeile mit den Daten ein, die von REPLACE
bereitgestellt wurden Erklärung.
Beachten Sie, dass REPLACE
Anweisung bedeutet INSERT
oder REPLACE
, nicht INSERT
oder UPDATE
.
Siehe folgende Anweisung.
REPLACE INTO positions (id, min_salary)
VALUES(2, 110000);
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
Die Anweisung hat versucht, min_salary
zu aktualisieren für die Position mit der ID 2, die der Entwickler ist.
Erstens existiert die Position mit der ID 2 bereits, der REPLACE
Anweisung entfernt es.
Dann hat SQLite versucht, eine neue Zeile mit zwei Spalten einzufügen:( id
, min_salary
). Es verstößt jedoch gegen NOT NULL
Einschränkung der Titelspalte. Daher setzt SQLite die Transaktion zurück.
Wenn der title
Spalte hat nicht den NOT NULL
Beschränkung, das REPLACE
-Anweisung fügt eine neue Zeile ein, deren Titelspalte NULL
ist .
In diesem Tutorial haben wir Ihnen gezeigt, wie Sie den SQLite REPLACE
verwenden Anweisung zum Einfügen oder Ersetzen einer Zeile in einer Tabelle.