Indizeak berrezarri

Datu-base erlazionaletako index eremuak berrezarri

SQL datu-baseetan index edo indize eremuak funtsezkoak dira taulen egituran eta berebiziko garrantzia dute datu kontsulten errendimenduan. Edukia int(integer) motako zenbaki osoa izan ohi da. UNIQUE ezaugarria izaten dute NULL edo hutsak izan ez daitezen eta errepikatzea ekiditeko. Horrez gain, PRIMARY KEY araua ere gehitzen zaie taulako erregistro bakoitza modu zehatzean identifikatzeko.


harira!

Taula batean erregistro berriak gehitzen doazen heinean, errenkada bakoitzari indize berri bat gehitzen zaio hurrenkeran id izeneko eremuan; Adibidez, 1, 2 eta 3.


id izena adina
1 jon 23
2 mikel 39
3 saioa 27

Erregistro hauek dena delako arrazoiren batengatik ezabatzen direnean, demagun taula hutsik utziz, sartzen den hurrengo erregistroari ez zaio 1. zenbakia emango. Datu-baseak taula horretako azkenengo id-arekiko egokituko dio indizea berria, beraz 4 izango da taulako lehen errenkadak izango duen id-a.


id izena adina
4 Leire 25

mysql

MySQL datu-baseetan index eremua berrezartzeko ondorengo SQL instrukzioa erabili daiteke:

ALTER TABLE `taula` AUTO_INCREMENT=0;

postgres

Postgres datu-baseetan index eremua berrezartzeko ondorengo urratsak jarraitu behar dira:

  • Hasteko taularen indize sekuentzia ezagutu behar da:

      SELECT pg_get_serial_sequence('taula','id');
    
  • Jasotako emaitzaz indizea berrezarri, horrela:

      ALTER SEQUENCE taula_id_seq RESTART WITH 1;
    
  • Edo beste modu honetan:

      SELECT SETVAL('taula_id_seq',(SELECT MAX(id) FROM taula));