Ta objava bo obravnavala vstavljanje nove vrstice le, če podatki še ne obstajajo v tabeli MySQL. Preden začnete s to objavo, se prepričajte, da ste prijavljeni v lokalni strežnik MySQL in ste izbrali zbirko podatkov, v kateri želite delati.
Vstavite novo vrstico samo, če podatki ne obstajajo z uporabo izjave 'INSERT IGNORE'.
No, odgovor na vprašanje v naslovu je precej preprost in jasen. Preprosto uporabite » VSTAVI « skupaj s ključno besedo » PREZRI ” Ključna beseda. To bo zagotovilo, da se novi podatki ali poizvedba za vstavljanje izvedejo le, če v MySQL ni najden predhodni vnos podatkov. Če želite dobiti kratek pregled tega, si oglejte naslednjo sintakso:
VSTAVI PREZRI INTO [ tabela - ime ] ( [ stolpec1 - ime ] , [ stolpec2 - ime ] , [ stolpec3 - ime ] ) VREDNOTE ( [ vrednost1 ] , [ vrednost2 ] , [ vrednost3 ] ) ;
Oglejmo si primer, če želi uporabnik vnesti vrednost vrstice ' 1 ”, “ Janez « in » Srna ' v ' Stranka ” tabela za stolpce ” Id ,” “ Ime « in » Priimek « oz. Zaženite to poizvedbo, da vstavite te vrednosti, če obstajajo, če še ne obstaja nobena vrstica s temi vrednostmi:
IZBERI * OD Stranka;
VSTAVI PREZRI INTO Stranka ( Id , Ime , Priimek ) VREDNOTE ( 1 , 'Janez' , 'srna' ) ;
Izhod vsebuje dve tabeli, ki prikazujeta podatke tabele pred in po izvedbi poizvedbe. Opazite lahko, da se v tabeli nič ne spreminja, ker je vrstica že obstajala, tako da je MySQL uspešno prezrl postopek vstavljanja, ne da bi prikazal napako:
Vstavite novo vrstico samo, če podatki ne obstajajo z uporabo klavzule 'WHERE NOT EXISTS'
V MySQL je » KJE NE OBSTAJA ” preprečuje vstavljanje vrstic, če že obstajajo v tabeli, ko je ta uporabljena v VSTAVITE V ” s podpoizvedbo za definiranje pogoja. Ko se ta člen uporablja s podpoizvedbo ' (SELECT * FROM [ime-tabele] [ime-stolpca]=[izraz]); ” preveri, ali v tabeli obstaja vrstica, ki izpolnjuje pogoj. Če obstaja vrstica, je ' KJER NE OBSTAJA ” vrne napačno vrednost in IZBERI ” ne bo vrnil nobene vrstice. Zaradi tega vrstica ne bo vstavljena v tabelo. Sintaksa je navedena spodaj:
VSTAVI INTO [ tabela - ime ] ( [ stolpec1 - ime ] , [ stolpec2 - ime ] , [ stolpec3 - ime ] )IZBERI [ vrednost1 ] , [ vrednost2 ] , [ vrednost3 ]
KJE NE OBSTAJA ( IZBERI * OD [ tabela - ime ] [ stolpec - ime ] = [ izražanje ] ) ;
Oglejmo si primer, če želi uporabnik v tabelo zaposlenih vstaviti vrstico, ki vsebuje vrednosti ' 1 ”, “ ameriški « in » Henriot 'v stolpcih' id ”, “ Ime podjetja « in » Kontaktno ime « oz. Vendar le, če je vrstica z id-jem ' 1 ” ni v tabeli ali pa ne obstaja. V tem posebnem primeru bo poizvedba postala:
IZBERI * OD zaposleni;
VSTAVI INTO zaposleni ( id , Ime podjetja , Kontaktno ime )
IZBERI 1 , 'Ameriški' , 'Henriot'
KJE NE OBSTAJA ( IZBERI * OD zaposleni KJE id = 1 ) ;
Izhod prikaže novo vrstico, ki ni vstavljena kot vrstica z ' id ' enako ' 1 ” je že obstajal.
Vstavite novo vrstico samo, če podatki ne obstajajo z uporabo klavzule »ON DUPLICATE KEY UPDATE«
No, drug način je uporaba ' PRI POSODOBITVI PODVOJENEGA KLJUČA ” v MySQL. Ker bo ta stavek uporabljen s poizvedbo »INSERT INTO«, ki tvori izvedbo »if-else«. To torej pomeni, da bodo podatki v tabeli posodobljeni le, če so edinstveni. V nasprotnem primeru do spremembe ne bi prišlo. Splošna sintaksa za to je naslednja:
VSTAVI INTO [ tabela - ime ] ( [ stolpec1 - ime ] , [ stolpec2 - ime ] , [ stolpec3 - ime ] ) VREDNOTE ( [ vrednost1 ] , [ vrednost2 ] , [ vrednost3 ] )VKLOP PODVOJNIK KLJUČ NADGRADNJA [ stolpec1 - ime ] = [ stolpec1 - ime ] ;
Oglejmo si primer vstavljanja vrednosti v ' 2 ”, “ Pascale ”, “ Nixon ”, “ London ”, “ Združeno kraljestvo « in “(171) 555-7788 'v tabeli' Stranka ' za stolpce ' Id ”, “ Ime ”, “ Priimek ”, “ mesto ”, “ država « in » telefon « oz. Če vrstica še ne obstaja, bo vstavljena. V nasprotnem primeru bo posodobil vrednosti, kjer je » Id=Id ” pogoj izpolnjuje. Zaženi to poizvedbo:
IZBERI * OD Stranka ;VSTAVI INTO Stranka ( Id , Ime , Priimek , mesto , država , telefon )
VREDNOTE ( 2 , 'Pascale' , 'Nixon' , 'London' , 'UK' , '(171) 555-7788' )
VKLOP PODVOJNIK KLJUČ NADGRADNJA Id = ID;
To je tabela, preden zaženete poizvedbo, lahko vidite » Id ' enako ' 2 ' ne obstaja:
Po zagonu poizvedbe bo ta poizvedba v tabelo vstavila nove vrstice:
Uspešno ste vstavili novo vrstico, saj podatki pred izvajanjem poizvedbe ne obstajajo.
Zaključek
V MySQL vstavite novo vrstico samo, če podatki še ne obstajajo z uporabo ' VSTAVI PREZRI ' izjava ali ' KJER NE OBSTAJA « klavzula v » VSTAVITE V ” izjava. Drug način za to je uporaba » PRI POSODOBITVI PODVOJENEGA KLJUČA « klavzula v » VSTAVITE V ” za posodobitev, če vrstica že obstaja. V nasprotnem primeru dodajte novo vrstico. Objava je obravnavala, kako vstaviti novo vrstico samo, če podatki ne obstajajo.