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
REPLACEstatement geprobeerd een nieuwe rij in te voegen incitiesde tabel. Het invoegen mislukte omdat de id 2 al bestaat in decitiestabel. - Daarna verwijderde het
REPLACEstatement 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