21. august 2003 - 15:05Der er
5 kommentarer og 1 løsning
Sikker select
Jeg mangler et sql kald der skal bruges til uddeling af præmier. Det skal være muligt i en tabel at angive i hvilket tidsinterval jeg ønsker at en person skal vide samt angivelse af hvilke præmie dette er. Jeg skal være 100% sikker på at når jeg selecter en præmie er der ingen andre der kan tage denne præmie. Ex. det vil være en katastrofe hvis jeg fx. uddeler 2 biler hvis der kun er 1 i en konkurrence.
Umiddelbart synesjeg ikke at det er et SELECT problem men snarere et database struktur problem.
Hvis du f.eks. har en tabel fundetvinder med to felter gevindstid personid og du gør gevindstid til primær nøgle, så sikrer databasen jo at der kun kan være en vinder af en gevindst.
Sålænge du enten laver hele din udvælgelse via. 1 query, en transaktion af queries eller låser tabellerne, som er du garanteret at din udvælgelse sker atomisk.
Ja det er jeg klar over det er finten er at selecte at her er en præmie samtidig med jeg sætter denne præmie som værende optaget så der ikke er nogen der snupper med jeg prøver at inserte vinderen
Du kan låse tabellerne. Hvis du laver flg: "LOCK TABLES table1 WRITE, table2 WRITE" Kan ingen andre læse/skrive til tabellerne og du kan sikkert vælge vinder og opdatere præmier. Husk at lave en "UNLOCK TABLES" når du er færdig.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.