AUTO_INCREMENT w MySQL

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

AUTO_INCREMENT to atrybut kolumny w MySQL, który powoduje automatyczne nadawanie kolejnych wartości liczbowych przy dodawaniu nowych rekordów. Najczęściej stosuje się go dla kolumny będącej kluczem głównym, np. id.

Typowe zastosowanie

Kolumna z AUTO_INCREMENT zwykle ma typ całkowity i jest zdefiniowana jako PRIMARY KEY:

CREATE TABLE pracownicy (
  id INTEGER NOT NULL AUTO_INCREMENT,
  imie VARCHAR(30),
  nazwisko VARCHAR(50),
  PRIMARY KEY (id)
);

Dzięki temu nie trzeba samodzielnie podawać wartości identyfikatora podczas wstawiania rekordu.

INSERT bez podania klucza

Jeżeli w instrukcji INSERT pominięto kolumnę id, MySQL sam przypisze jej kolejną dostępną wartość:

INSERT INTO pracownicy (imie, nazwisko)
VALUES ('Anna', 'Nowak');

Jeśli tabela jest pusta, id zwykle otrzyma wartość 1. Kolejny rekord otrzyma 2, następny 3 itd.

Ważne zasady

  • AUTO_INCREMENT działa dla kolumn liczbowych, najczęściej INT lub INTEGER.
  • W jednej tabeli może być tylko jedna kolumna AUTO_INCREMENT.
  • Kolumna taka powinna być indeksowana, najczęściej jako PRIMARY KEY.
  • Nie należy mylić automatycznie nadanej wartości z NULL — baza nie zapisuje tam NULL, tylko generuje liczbę.

Znaczenie egzaminacyjne

Jeżeli w pytaniu podano, że klucz główny ma INTEGER NOT NULL AUTO_INCREMENT, a zapytanie INSERT pomija to pole, poprawny wniosek jest taki: rekord zostanie dodany, a klucz główny otrzyma kolejną wartość naturalną.