sql >> Database >  >> RDS >> Mysql

Hoe controleer ik of de waarde al in de tabel bestaat?

Gebruik een unique constraint . Probeer de record in te voegen/bij te werken en de uitzondering op te vangen die wordt gegenereerd wanneer de unieke beperking wordt geschonden. Dit is de enige manier om een ​​uniek e-mailadres te garanderen; eerst controleren en vervolgens bijwerken is vatbaar voor gelijktijdigheidsproblemen, aangezien het mogelijk is dat iemand anders zijn/haar record bijwerkt naar dezelfde waarde die u probeert in te stellen, net nadat u de controle hebt uitgevoerd en voordat u het record bijwerkt.

Ook:leer hoe u where gebruikt -clausules. Je haalt nu ALLE records op, herhaalt ze enz., wat onnodig veel middelen kost, te lang duurt en gewoon een verspilling is. Als u wilt controleren op een record dat aan een criterium voldoet, schrijft u:

Select foo, bar from table where baz = 123

Waar baz = 123 is jouw criterium. Stel je voor wat er zou gebeuren als je 500 of zelfs 500.000 records in je huidige setup hebt. De database zou uw query uitvoeren, ALLE rijen uit die database verzamelen en ze overbrengen naar uw toepassing waar uw toepassing alle 500.000 resultaten zou herhalen. Of je vraagt ​​de DB om te doen waar hij goed in is (en waarom je hem in de eerste plaats gebruikt):Geef mij de/alle record(s) die overeenkomen met criterium X. Je krijgt 1 of geen records (gezien de unieke beperking):1 =een record komt overeen met uw criterium, geen =er zijn geen records. Bespaart overdracht en "handmatig moeten kijken" van 499.999 records;-)




  1. MySQL COS() Functie – Retourneer de cosinus van een getal in MySQL

  2. Waarde automatisch in database invoegen

  3. Wat is de beste manier om een ​​naar zichzelf verwijzende MySQL-tabel leeg te maken?

  4. Binaire waarden vergelijken in MySQL