logo

MySQL REPLACE

REPLACE priekšraksts pakalpojumā MySQL ir SQL standarta paplašinājums. Šis priekšraksts darbojas tāpat kā priekšraksts INSERT, izņemot to, ka, ja vecā rinda atbilst jaunajam ierakstam tabulā PRIMĀRĀS ATSLĒGAS vai UNIKĀLĀ indeksa, šī komanda izdzēsa veco rindu pirms jaunās rindas pievienošanas.

Šis paziņojums ir nepieciešams, ja mēs vēlamies atjaunināt esošos ierakstus tabulā, lai tie būtu atjaunināti. Ja šim nolūkam izmantosim standarta ievietošanas vaicājumu, tas sniegs PRIMĀRĀS ATSLĒGAS ieraksta dublikātu vai UNIKĀLĀS atslēgas kļūdu. Šajā gadījumā mēs izmantosim priekšrakstu REPLACE, lai veiktu savu uzdevumu. Komandai REPLACE ir nepieciešams viens no diviem iespējams darbības notiek:

  • Ja esošajai datu rindai atbilstoša vērtība netiek atrasta, tiek veikts standarta INSERT priekšraksts.
  • Ja tiek atrasts ieraksta dublikāts, aizstāšanas komanda izdzēsīs esošo rindu un pēc tam pievienos jaunu ierakstu tabulā.

Priekšrakstā REPLACE atjaunināšana tika veikta divās darbībās. Pirmkārt, tas izdzēsīs esošo ierakstu, un pēc tam tiks pievienots tikko atjauninātais ieraksts, līdzīgi kā standarta INSERT komandai. Tādējādi mēs varam teikt, ka REPLACE priekšraksts veic divas standarta funkcijas, DZĒST un IEVIETOT .

Sintakse

java virkne cmp

Tālāk ir norādīta sintakse AIZVIETOT paziņojums iekšā MySQL :

 REPLACE [INTO] table_name(column_list) VALUES(value_list); 

MySQL REPLACE Piemērs

Ļaujiet mums saprast REPLACE priekšraksta darbību MySQL, izmantojot piemēru. Pirmkārt, mēs izveidosim tabulu ar nosaukumu 'Persona' izmantojot šādu paziņojumu:

klausieties portu
 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 ); 

Pēc tam ieraksts ir jāaizpilda tabulā, izmantojot IEVIETOT paziņojums, kā norādīts zemāk:

 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'); 

Izpildiet ATLASĪT paziņojums, lai pārbaudītu ierakstus, kurus var parādīt zemāk esošajā izvadā:

MySQL REPLACE

Pēc datu pārbaudes tabulā, mēs varam aizstāt jebkuru veco rindu ar jauno rindu, izmantojot REPLACE priekšrakstu. Izpildiet tālāk norādīto paziņojumu, kas atjaunina tādas personas pilsēta, kuras ID ir 4 .

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

Pēc sekmīgas iepriekš minētā paziņojuma izpildes ir nepieciešams vēlreiz vaicāt tabulas Personas datus, lai pārbaudītu aizstāšanu.

java operatori
MySQL REPLACE

Vērtība sadaļā nosaukums un e-pasts kolonnas ir NULL tagad. Tas ir tāpēc, ka REPLACE priekšraksts darbojas šādi:

  • Šis paziņojums vispirms mēģina ievietot jaunu rindu tabulā Person. Taču jaunas rindas ievietošana neizdevās, jo tabulā jau ir id = 4.
  • Tātad šis paziņojums vispirms izdzēsiet rindu, kuras id = 4, un pēc tam ievietojiet jaunu rindu ar tādu pašu ID un pilsētu kā Amsterdama. Tā kā mēs neesam norādījuši nosaukumu un e-pasta kolonnas vērtību, tā tika iestatīta uz NULL.

MySQL REPLACE priekšraksts, lai atjauninātu rindu

Mēs varam izmantot šādu REPLACE priekšrakstu, lai atjauninātu rindas datus tabulā:

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

Iepriekš minētā sintakse ir līdzīga UPDATE paziņojums izņemot atslēgvārdu REPLACE. Jāatzīmē, ka mēs nevaram izmantot WHERE klauzulu ar šo paziņojumu.

Izpildiet tālāk sniegto piemēru, kurā tiek izmantots priekšraksts REPLACE, lai atjauninātu nosauktās personas pilsētu Maiks no Kalifornija uz Birmingema .

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

Pēc tabulas pārbaudes mēs varam redzēt šādu izvadi:

MySQL REPLACE

Ja mēs neesam norādījuši kolonnas vērtību SET klauzula , šī komanda darbojas kā UPDATE paziņojums , kas nozīmē, ka priekšraksts REPLACE izmantos šīs kolonnas noklusējuma vērtību.

MySQL REPLACE, lai ievietotu datus no priekšraksta SELECT.

Mēs varam izmantot šādu REPLACE INTO priekšrakstu, lai ievietotu datus tabulā ar datiem, kas tiek atgriezti no vaicājuma.

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

Jāņem vērā, ka iepriekš minētais REPLACE vaicājums ir līdzīgs vaicājumam INSERT INTO SELECT paziņojums, apgalvojums. Izpildiet tālāk redzamo piemēru, kas izmanto priekšrakstu REPLACE INTO, lai kopētu rindu tajā pašā tabulā.

pārveidot virkni par int
 REPLACE INTO Person(Name, City) SELECT Name, City FROM Person WHERE id = 2; 

Pēc tabulas pārbaudes mēs iegūsim šādu izvadi. Šajā izvadē mēs redzam, ka rindas kopija tajā pašā tabulā ir veiksmīgi pievienota.

MySQL REPLACE