Controleren of veld waarde al bestaat in tabel
Jaws
02/11/2007 16:37:00Ik vroeg mij af wat de snelste/efficientste manier is om bij het wegschrijven van een nieuwe rij in een tabel te kijken of er geen andere rij in die tabel is waarvan een bepaald veld (niet de key) al eerder in die table stond?
Ik neem aan dat je dit in de query al kun aangeven bij de insert, ik kan echter niet vinden welke sql code dit kan. Enige andere manier die ik zou kunnen bedenken is een extra query die eerst checked of het veld bestaat. Dat is dus een query extra en waarschijnlijk onnodig.
Ik neem aan dat je dit in de query al kun aangeven bij de insert, ik kan echter niet vinden welke sql code dit kan. Enige andere manier die ik zou kunnen bedenken is een extra query die eerst checked of het veld bestaat. Dat is dus een query extra en waarschijnlijk onnodig.
PHP hulp
21/11/2024 13:33:21Frank -
02/11/2007 16:50:00Zet een UNIQUE op de kolom (-men) waar het om gaat en de INSERT zal keurig mislukken wanneer de waarde al bestaat.
Wanneer je MySQL gebruikt, krijg je echter niet te horen wélke UNIQUE-constraint is overtreden, met meerdere UNIQUE-constraints in 1 tabel kan dat dus wat vaag worden. Dan zul je na het optreden van een fout alsnog één of meerdere SELECT-queries moeten uitvoeren om uit te zoeken wat er nu precies fout is gegaan.
In PostgreSQL krijg je exact te horen welke constraint is overtreden, dan weet je in 1 keer welke waarde al een probleem oplevert.
Dit wil echter niet zeggen dat er niet nog meer problemen kunnen zijn! De query mislukt namelijk op de eerste de beste constraint-violation, er wordt niet gekeken of er nog meer violations kunnen optreden. UNIQUE is onmisbaar, wat extra SELECT's kunnen de boel wat gebruikersvriendelijker maken.
Wanneer je MySQL gebruikt, krijg je echter niet te horen wélke UNIQUE-constraint is overtreden, met meerdere UNIQUE-constraints in 1 tabel kan dat dus wat vaag worden. Dan zul je na het optreden van een fout alsnog één of meerdere SELECT-queries moeten uitvoeren om uit te zoeken wat er nu precies fout is gegaan.
In PostgreSQL krijg je exact te horen welke constraint is overtreden, dan weet je in 1 keer welke waarde al een probleem oplevert.
Dit wil echter niet zeggen dat er niet nog meer problemen kunnen zijn! De query mislukt namelijk op de eerste de beste constraint-violation, er wordt niet gekeken of er nog meer violations kunnen optreden. UNIQUE is onmisbaar, wat extra SELECT's kunnen de boel wat gebruikersvriendelijker maken.
Jaws
02/11/2007 17:20:00ok, thx.
Ik ga de unique er maar opzetten. Het is opzich niet zo belangrijk welke het is omdat er maar een checked hoeft te worden.
Ik ga de unique er maar opzetten. Het is opzich niet zo belangrijk welke het is omdat er maar een checked hoeft te worden.