Auto-increment-velden (MySQL)

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen

Auti-increment-velden (AI-velden) zijn velden die automatisch doortellen bij nieuwe records. Ze worden oa. gebruikt als primary keys. Voorbeeld: De primaire sleutel van de WordPress-tabel posts is een AI-veld:

  • Bij het aanmaken van een nieuw record, hoef je AI-velden doorgaans niet van een waarde te voorzien, dat gebeurt automatisch
  • Bestaande records met een AI-veld kunnen gewoon verwijderd worden. Maw.: Er kunnen gaten ontstaan in tabellen met een AI-veld
  • Ik geloof dat je maar één AI-veld per tabel mag hebben

Je kunt de waarde van het AI-veld overrulen. Dit kan zelfs met een lagere waarde zijn dan op dat moment verwacht zou worden. De enige voorwaarde: De waarde mag nog niet bestaan. Voorbeeld:

insert into 
   wp_posts(ID)
values
   (70005);

insert into 
   wp_posts(ID)
values
   (70004);

SELECT * FROM wp_posts limit 65000,200;

Als ik deze routine een tweede keer executeer, krijg ik een foutmelding dat de waarde voor ID niet uniek is:

10:22:19   insert into wp_posts(ID) values  (70005)	Error Code: 1062. Duplicate entry '70005' for key 'PRIMARY'	0,062 sec