MySQL REPLACE

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:

REPLACE table_name(column_list)VALUES(value_list);
Code language: SQL (Structured Query Language) (sql)
Het is vergelijkbaar met het 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:

CREATE TABLE cities ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), population INT NOT NULL);
Code language: SQL (Structured Query Language) (sql)

Daarna voeg je een aantal rijen in de cities tabel in:

INSERT INTO cities(name,population)VALUES('New York',8008278), ('Los Angeles',3694825), ('San Diego',1223405);
Code language: SQL (Structured Query Language) (sql)

Vraag vervolgens gegevens op uit de cities tabel om de invoegbewerking te controleren.

SELECT * FROM cities;
Code language: SQL (Structured Query Language) (sql)
MySQL REPLACE - voorbeeldtabel

Daarna, gebruik je het REPLACE statement om de populatie van de Los Angeles stad bij te werken naar 3696820.

REPLACE INTO cities(id,population)VALUES(2,3696820);
Code language: SQL (Structured Query Language) (sql)

Vraag ten slotte de gegevens van de cities tabel nogmaals op om de vervanging te verifiëren.

SELECT * FROM cities;
Code language: SQL (Structured Query Language) (sql)
MySQL REPLACE-voorbeeld

De waarde in de kolom name is nu NULL. Het REPLACE statement werkt als volgt:

  1. Eerst heeft het REPLACE statement geprobeerd een nieuwe rij in te voegen in cities de tabel. Het invoegen mislukte omdat de id 2 al bestaat in de cities tabel.
  2. Daarna verwijderde het REPLACE statement de rij met id 2 en voegde een nieuwe rij in met dezelfde id 2 en populatie 3696820. Omdat er geen waarde is opgegeven voor de kolom naam, is deze ingesteld op NULL.

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:

REPLACE INTO tableSET column1 = value1, column2 = value2;
Code language: SQL (Structured Query Language) (sql)

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:

REPLACE INTO citiesSET id = 4, name = 'Phoenix', population = 1768980;
Code language: SQL (Structured Query Language) (sql)

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.

SELECT * FROM cities;
Code language: SQL (Structured Query Language) (sql)

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.

REPLACE INTO table_1(column_list)SELECT column_listFROM table_2WHERE where_condition;
Code language: SQL (Structured Query Language) (sql)

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:

REPLACE INTO cities(name,population)SELECT name, population FROM cities WHERE id = 1;
Code language: SQL (Structured Query Language) (sql)

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

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *