Samenvatting: in deze tutorial leert u hoe u het MySQL REPLACE
statement kunt gebruiken om gegevens in databasetabellen in te voegen of bij te werken.
Inleiding tot het MySQL REPLACE statement
Het MySQL REPLACE
statement is een uitbreiding op de SQL Standaard. De MySQL REPLACE
verklaring werkt als volgt:
Stap 1. Voeg een nieuwe rij in de tabel in, als er een duplicate key error optreedt.
Step 2. Als het invoegen mislukt als gevolg van een duplicaat-sleutelfout:
- Verwijder de conflicterende rij die de duplicaat-sleutelfout veroorzaakt uit de tabel.
- Voeg de nieuwe rij opnieuw in de tabel in.
Om te bepalen of de nieuwe rij al in de tabel bestaat, gebruikt MySQL de PRIMARY KEY
of UNIQUE KEY
index. Als de tabel niet een van deze indexen heeft, werkt de REPLACE
als een INSERT
statement.
Om het REPLACE
statement te gebruiken, moet u op zijn minst zowel INSERT
als DELETE
rechten voor de tabel hebben.
Mysql heeft de functie REPLACE
string, maar dat is niet het REPLACE
statement dat in deze tutorial wordt behandeld.
MysqlM REPLACE gebruiken om een nieuwe rij in te voegen
Het volgende illustreert de syntax van het REPLACE
statement:
Code language: SQL (Structured Query Language) (sql)REPLACE table_name(column_list)VALUES(value_list);
INSERT
statement behalve het sleutelwoord REPLACE
.Laten we eens kijken naar het volgende voorbeeld van het gebruik van het REPLACE
statement om te zien hoe het werkt.
Eerst maak je een nieuwe tabel aan met de naam cities
als volgt:
Code language: SQL (Structured Query Language) (sql)CREATE TABLE cities ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), population INT NOT NULL);
Daarna voeg je een aantal rijen in de cities
tabel in:
Code language: SQL (Structured Query Language) (sql)INSERT INTO cities(name,population)VALUES('New York',8008278), ('Los Angeles',3694825), ('San Diego',1223405);
Vraag vervolgens gegevens op uit de cities
tabel om de invoegbewerking te controleren.
Code language: SQL (Structured Query Language) (sql)SELECT * FROM cities;
Daarna, gebruik je het REPLACE
statement om de populatie van de Los Angeles
stad bij te werken naar 3696820
.
Code language: SQL (Structured Query Language) (sql)REPLACE INTO cities(id,population)VALUES(2,3696820);
Vraag ten slotte de gegevens van de cities
tabel nogmaals op om de vervanging te verifiëren.
Code language: SQL (Structured Query Language) (sql)SELECT * FROM cities;
De waarde in de kolom name
is nu NULL
. Het REPLACE
statement werkt als volgt:
- Eerst heeft het
REPLACE
statement geprobeerd een nieuwe rij in te voegen incities
de tabel. Het invoegen mislukte omdat de id 2 al bestaat in decities
tabel. - Daarna verwijderde het
REPLACE
statement de rij met id 2 en voegde een nieuwe rij in met dezelfde id 2 en populatie3696820
. Omdat er geen waarde is opgegeven voor de kolom naam, is deze ingesteld opNULL
.
Een MySQL REPLACE verklaring gebruiken om een rij bij te werken
Het volgende illustreert hoe u de REPLACE
verklaring kunt gebruiken om gegevens bij te werken:
Code language: SQL (Structured Query Language) (sql)REPLACE INTO tableSET column1 = value1, column2 = value2;
Dit statement lijkt op het UPDATE
statement met uitzondering van het REPLACE
sleutelwoord. Bovendien heeft het geen WHERE
clausule.
Dit voorbeeld gebruikt het REPLACE
statement om de bevolking van de Phoenix
stad bij te werken naar 1768980
:
Code language: SQL (Structured Query Language) (sql)REPLACE INTO citiesSET id = 4, name = 'Phoenix', population = 1768980;
In tegenstelling tot het UPDATE
statement, als u de waarde voor de kolom niet opgeeft in de SET
clausule, zal het REPLACE
statement de standaardwaarde van die kolom gebruiken.
Code language: SQL (Structured Query Language) (sql)SELECT * FROM cities;
Een MySQL REPLACE gebruiken om gegevens in te voegen van een SELECT verklaring
Het volgende illustreert de REPLACE
verklaring die gegevens in een tabel invoegt met de gegevens afkomstig van een query.
Code language: SQL (Structured Query Language) (sql)REPLACE INTO table_1(column_list)SELECT column_listFROM table_2WHERE where_condition;
Merk op dat deze vorm van het REPLACE
statement vergelijkbaar is met het INSERT INTO SELECT
statement.
Het volgende statement gebruikt het REPLACE INTO
statement om een rij binnen dezelfde tabel te kopiëren:
Code language: SQL (Structured Query Language) (sql)REPLACE INTO cities(name,population)SELECT name, population FROM cities WHERE id = 1;
In deze tutorial hebt u verschillende vormen van het MySQL REPLACE
statement geleerd om gegevens in een tabel in te voegen of bij te werken.
- Was deze handleiding nuttig?
- JaNee