MySQL AUTO_INCREMENT question

V13 v13 at priest.com
Thu Dec 21 19:58:12 EET 2006


On Wednesday 20 December 2006 20:27, Θοδωρής Λύτρας wrote:
> Ένα βασικό νόημα αυτού που αναζητώ είναι το εξής: φτιάχνω την εφαρμογή μου
> σε PHP, την δοκιμάζω με υποθετικές εγγραφές, κάνω debug, σβήνω μετά από το
> mysql monitor τις εγγραφές αυτές, και θέλω ο μετρητής να επιστρέψει στο 1
> για να κάνω κι άλλες δοκιμες. Αν δεν υπάρχει κάποιος τρόπος γι'αυτό θα
> πρέπει να κάνω DROP τους πίνακες και να τους ξαναφτιάξω...

Tote ayto poy theleis den einai to autoincrement, alla 'ena' query to opoio na 
soy epistrefei ton proto eleythro arithmo. Sth synexeia orizeis mono soy to 
id, symfona me to apotelesma toy query...

Prosopika to kano ayto me kodika kai xrisimopoio to parakato:

SELECT MIN(a.$efield-1) AS id, COUNT(a.$efield-1) AS cnt
            FROM $etable a LEFT JOIN $etable b ON b.$efield=a.$efield-1
            WHERE b.$efield IS NULL AND a.$efield>1 $where;

Opoy $efield einai to escaped onoma toy pedioy kai $etable einai to escaped 
onoma toy pinaka

An to cnt den einai 0, tote to id einai to epomeno eleythero id. 

An to cnt einai 0 tote shmainei oti den yparxei keno h den yparxoyn eggrafes, 
opote kaneis:

SELECT MAX($efield)+1 AS id, COUNT($efield) AS cnt FROM $etable

kai elegxeis kai pali to cnt. An to cnt einai 0 shmainei oti den yparxoyn 
eggrafes kai arxizeis apo to 0. An den einai 0, tote to id exei to epomeno 
eleythero ID.

Ta parapano doylevoyn se postgresql kai elpizo na doylevoyn kai se mysql. Tha 
mporoyse na ginei kai me ena query mono, alla tha itan elafros pio polyploko 
kai tha xreiazotan kapoies synartiseis opos to COALESCE...

Opos katalabaineis den mporeis na kaneis kati tetoio se megaloys pinakes giati 
tha kathysterei xoris logo.

Telos, einai kaki taktiki na kaneis development kai debuging pano sth 
production basi, opote isos na'nai kalytera na ksekiniseis apo ekei... 

<<V13>>




More information about the Linux-greek-users mailing list