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));
Comments
No comments yet. Be the first to react!