 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
pdaniel
Data înscrierii: 18/Ian/2005
Mesaje: 63
|
| Trimis: Joi Ian 27, 2005 10:20 pm Titlul subiectului: ID reset de la 1 din PHP |
|
|
| Am o baza de date cu tabelele ID INT (11),auto_incremen, primary,.. T2(nu_conteaza), T3 (Nu_conteaza). Am un insert.php (sa zicem) care imi face submit la niste informatii in T1 si T2. ID are auto_increment. Bun. Acum sa zicem ca sterg toate datele din T1, T2. In continuare sa zicem ca bag alte date in T1 si T2. ID-ul nu o ia de la 1 cum ar fi normal. Cum pot face ca si ID-ul sa o ia de la unu, dupa ce sterg toate datele din baza de date. Adica dc inainte de stergerea datelor, ID-ul a ramas la 11, la o noua introducere, sa nu o ia de la 12, ci de la 1. |
|
| Sus |
|
adrian12
Data înscrierii: 12/Ian/2005
Mesaje: 25
Locație: Cluj-Napoca
|
| Trimis: Joi Ian 27, 2005 11:15 pm Titlul subiectului: |
|
|
nu cred ca poti...
asta e cu autoincrement... incepe totdeauna de unde a ramas...
daca este vreo rezolvare sunt si eu curios de ea...
de fapt nici nu stiu de ce iti trebuie tie auto increment. e o facilitate care nu prea are accesibilitate. eu unul personal nu o vad utila de loc. ce face auto incrementul poti sa faci si tu si chiar usor, si si elimini bug-ul care te enerveaza acum... |
|
| Sus |
|
aurelian
Data înscrierii: 01/Iun/2003
Mesaje: 833
Locație: Bucuresti
|
| Trimis: Joi Ian 27, 2005 11:47 pm Titlul subiectului: Re: ID reset de la 1 din PHP |
|
|
pdaniel a scris: ID-ul nu o ia de la 1 cum ar fi normal.
Nu prea este normal sa o ia de la zero, si mai mult nu este bine sa te bazezi pe un astfel de camp "fix", de ex. in momentul in care stergi o inregistrare din Tabelul 1 care are cam ID INT ca fiind auto-increment ar fi bine sa stergi si din tabelul 2 inregistrarile in care se face referire la campul ID din Tab 1.
Zic ca nu prea e normal ptr. ca alte servere de baze de date nu au facilitatea asta, si, sa ma contrazica cineva, dar am impresia ca nu este un standard SQL.
pe de alta parte, daca stergi cu:
TRUNCATE TABLE `_TABELUL_MEU_`;
o sa iti intoarca auto-incrementul la 1 dar o sa pierzi toate inregistrarile. |
|
| Sus |
|
arond
Data înscrierii: 11/Mar/2004
Mesaje: 580
Locație: 127.0.0.1
|
| Trimis: Vin Ian 28, 2005 1:18 am Titlul subiectului: |
|
|
Nu e normal sa o ia de la 1, pentru ca semantica "autoincrement" nu spune asta. Tot ce ti se garanteaza e ca la fiecare inregistrare noua, ID-ul e unic.
La alte SGBD-uri nici macar nu se genereaza secvential.
In alta ordine de idei, nu vad de ce te intereseaza ce valori sunt acolo (in afara de o framantare de natura estetica :)).
Numa' bune. |
|
| Sus |
|
pdaniel
Data înscrierii: 18/Ian/2005
Mesaje: 63
|
| Trimis: Vin Ian 28, 2005 8:30 am Titlul subiectului: |
|
|
Cineva de pe softpedia mi-a dat urmatoarea chestie:
ALTER TABLE nume_tabel AUTO_INCREMENT=1
Nu am avut timp sa o incerc, dar va arat si voia queryul. |
|
| Sus |
|
adrian12
Data înscrierii: 12/Ian/2005
Mesaje: 25
Locație: Cluj-Napoca
|
| Trimis: Vin Ian 28, 2005 5:18 pm Titlul subiectului: |
|
|
si ce faci cu asta ?
nu modifici nimic dupa parerea mea...
:D |
|
| Sus |
|
johnny
Data înscrierii: 31/Iul/2004
Mesaje: 904
Locație: Bucuresti
|
| Trimis: Sâm Ian 29, 2005 5:30 pm Titlul subiectului: |
|
|
ALTER TABLE nume_tabel AUTO_INCREMENT=1
va reseta auto-incrementul la 1.
Eu l-am testat si folosit.
Daca ai avut 50.000 inregistrari si le stergi, primul camp care il introduci va avea ID 50.001, daca se ruleaza inainte
query-ul de mai sus, noul camp va avea ID=1! |
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |
|