MySQL – Kako vstaviti novo vrstico samo, če podatki ne obstajajo

Mysql Kako Vstaviti Novo Vrstico Samo Ce Podatki Ne Obstajajo



MySQL je znan odprtokodni RDBMS za shranjevanje podatkov v bazah podatkov. Vstavljanje podatkov v tabele baze podatkov je običajna naloga. Včasih uporabniki ne želijo vstaviti podvojenih podatkov, da bi odpravili redundanco. MySQL uporabnikom omogoča vstavljanje podatkov le, če podobni podatki še ne obstajajo.

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.