logo

VYMĚNIT MySQL

Příkaz REPLACE v MySQL je rozšířením standardu SQL. Tento příkaz funguje stejně jako příkaz INSERT s tím rozdílem, že pokud se starý řádek shoduje s novým záznamem v tabulce pro PRIMARY KEY nebo UNIQUE index, tento příkaz vymaže starý řádek před přidáním nového řádku.

Toto prohlášení je vyžadováno, když chceme aktualizovat existující záznamy do tabulky, aby byly aktualizovány. Pokud pro tento účel použijeme standardní vkládací dotaz, zobrazí se duplicitní záznam pro PRIMARY KEY nebo UNIQUE key error. V tomto případě použijeme k provedení našeho úkolu příkaz REPLACE. Příkaz REPLACE vyžaduje jeden z těchto dvou možný probíhají akce:

  • Pokud není nalezena žádná odpovídající hodnota s existujícím řádkem dat, provede se standardní příkaz INSERT.
  • Pokud je duplicitní záznam nalezen, příkaz nahradit odstraní existující řádek a poté přidá nový záznam do tabulky.

V příkazu REPLACE byla aktualizace provedena ve dvou krocích. Nejprve odstraní stávající záznam a poté přidá nově aktualizovaný záznam, podobně jako standardní příkaz INSERT. Můžeme tedy říci, že příkaz REPLACE provádí dvě standardní funkce, VYMAZAT a VLOŽIT .

Syntax

Následuje syntaxe NAHRADIT prohlášení v MySQL :

weby, jako je bedpage
 REPLACE [INTO] table_name(column_list) VALUES(value_list); 

Příklad MySQL REPLACE

Pojďme pochopit fungování příkazu REPLACE v MySQL pomocí příkladu. Nejprve vytvoříme tabulku s názvem 'Osoba' pomocí následujícího prohlášení:

jak stahovat videa z youtube vlc
 CREATE TABLE Person ( ID int AUTO_INCREMENT PRIMARY KEY, Name varchar(45) DEFAULT NULL, Email varchar(45) DEFAULT NULL UNIQUE, City varchar(25) DEFAULT NULL ); 

Dále musíme vyplnit záznam do tabulky pomocí VLOŽIT prohlášení, jak je uvedeno níže:

 INSERT INTO Person(ID, Name, Email, City) VALUES (1,'Mike', '[email protected]', 'California'), (2, 'Alexandar', '[email protected]', 'New York'), (3, 'Adam', '[email protected]', 'Los Angeles'), (4, 'Peter', '[email protected]', 'Alaska'); 

Proveďte VYBRAT prohlášení k ověření záznamů, které lze zobrazit v níže uvedeném výstupu:

VYMĚNIT MySQL

Po ověření dat do tabulky můžeme nahradit libovolný starý řádek novým řádkem pomocí příkazu REPLACE. Proveďte níže uvedený příkaz, který aktualizuje soubor město osoby, jejíž ID je 4 .

 REPLACE INTO Person (id, city) VALUES(4,'Amsterdam'); 

Po úspěšném provedení výše uvedeného příkazu je nutné znovu dotazovat data tabulky Osoba pro ověření nahrazení.

VYMĚNIT MySQL

Hodnota v název a e-mailem sloupce jsou NULA Nyní. Je to proto, že příkaz REPLACE funguje následovně:

  • Tento příkaz se nejprve pokusí vložit nový řádek do tabulky Osoba. Vložení nového řádku se však nezdařilo, protože id = 4 již v tabulce existuje.
  • Tento příkaz tedy nejprve vymaže řádek, jehož id = 4, a poté vloží nový řádek se stejným id a městem jako Amsterdam. Protože jsme nezadali hodnotu pro sloupec jméno a e-mail, byla nastavena na NULL.

Příkaz MySQL REPLACE pro aktualizaci řádku

K aktualizaci dat řádku na tabulku můžeme použít následující příkaz REPLACE:

 REPLACE INTO table SET column1 = value1, column2 = value2; 

Výše uvedená syntaxe je podobná syntaxi AKTUALIZOVAT prohlášení kromě klíčového slova REPLACE. Je třeba poznamenat, že s tímto příkazem nemůžeme použít klauzuli WHERE.

Proveďte níže uvedený příklad, který používá příkaz REPLACE k aktualizaci města jmenované osoby Mike z Kalifornie na Birmingham .

 REPLACE INTO Person SET ID = 1, Name = 'Mike', City = 'Birmingham'; 

Po ověření tabulky můžeme vidět následující výstup:

věk rekha
VYMĚNIT MySQL

Pokud jsme nezadali hodnotu sloupce v klauzule SET , tento příkaz funguje jako AKTUALIZOVAT prohlášení , což znamená, že příkaz REPLACE použije výchozí hodnotu tohoto sloupce.

MySQL REPLACE pro vložení dat z příkazu SELECT.

K vložení dat do tabulky s daty vrácenými z dotazu můžeme použít následující příkaz REPLACE INTO.

 REPLACE INTO table1(column_list) SELECT column_list FROM table2 WHERE condition; 

Je třeba poznamenat, že výše uvedený dotaz REPLACE je podobný dotazu INSERT DO SELECT prohlášení. Spusťte níže uvedený příklad, který používá příkaz REPLACE INTO ke zkopírování řádku ve stejné tabulce.

 REPLACE INTO Person(Name, City) SELECT Name, City FROM Person WHERE id = 2; 

Po ověření tabulky získáme následující výstup. V tomto výstupu můžeme vidět, že kopie řádku ve stejné tabulce byla úspěšně přidána.

VYMĚNIT MySQL