Jak korzystać z automatycznego wzrostu MySQL

Jak korzystać z automatycznego wzrostu MySQL
Auto-ponowne jest bardzo ważnym atrybutem MySQL. Gdy tabela wymaga pola numerycznego, które automatycznie zwiększy się do wygenerowania liczby sekwencyjnej, w tym polu używany jest atrybut automatycznego wzrostu. Pole automatycznego wzrostu można przypisać jako klucz podstawowy lub unikalny klucz dla tabeli w razie potrzeby. To pole nie może przechowywać wartości zerowej. Tak więc, gdy atrybut automatycznego zbierania jest ustawiony dla dowolnego pola tabeli, nie ograniczenie null ustawi się automatycznie dla tego pola. Gdy nowe rekordy muszą wstawić do tabeli zawierającej pole automatycznego wzrostu, użytkownik nie musi podawać żadnej wartości dla tego pola. Jak działa ten atrybut w tabelach MySQL, jest pokazany w tym artykule.

Funkcje pola automatycznego wprowadzania:

  • Pierwszy rekord tego pola zawsze rozpoczyna się od 1 domyślnie i zwiększany o 1, gdy nowa rekord wkłada.
  • Jeśli użytkownik określa jakąkolwiek konkretną wartość liczbową bez NULL dla tego pola w momencie wprowadzenia, które nie jest w kolejności sekwencyjnej, komunikat o błędzie zostanie wygenerowany przez MySQL.
  • Jeśli jakakolwiek wartość tego pola jest aktualizowana inną wartością, która już istnieje w tabeli, MySQL wygeneruje komunikat o błędzie.
  • Jeśli użytkownik usunie ostatnie rekordy z tabeli, to, jaki będzie nowy numer sekwencyjny, zależy od silnika tabeli. Tabela InnOnDB nigdy nie generuje wcześniej wygenerowanej liczby, gdy nowe rekordy wstawki, ale tabela Myisam generuje ostatni numer sekwencyjny, który jest usuwany z tabeli.
  • Funkcja last_insert_id () służy do pobierania wartości liczby generowanej w ostatnim wstawce.

Składnia:

Utwórz tabelę Tabela 1
(
Field1 Auto_increment [klucz podstawowy],
Field2 Abodatype [NULL | NIE JEST ZEREM ],

Fieldn DataType [NULL | NIE JEST ZEREM ],
);

Tutaj, Field1 jest zdefiniowane jako pole automatycznego wzrostu, a danych z tego pola może być dowolny liczbowy typ danych Int Lub Bigint. Definiowanie pola automatycznego zbierania nie jest obowiązkowe jako klucz podstawowy. Ale może być używany jako klucz podstawowy do stworzenia relacji między dwiema tabelami.

Warunek wstępny:

Uruchom następujące polecenia SQL, aby utworzyć bazę danych o nazwie 'Newdb'i wybierz bazę danych do tworzenia tabel z atrybutem automatycznego wzrostu.

Utwórz bazę danych newdb;
Użyj Newdb;

Utwórz tabelę z automatycznym wzrostem:

Uruchom następującą instrukcję Utwórz, aby utworzyć tabelę o nazwie studenci Gdzie ID Pole zostanie utworzone z atrybutem automatycznego wzrostu i ustawione jako klucz podstawowy. Następnie zostaną wykonane dwa rodzaje instrukcji wkładek. W pierwszej instrukcji Wstaw, nie wymieniono nazwy pola w zapytaniu i musisz podać wszystkie wartości pola tabeli dla tego typu wstawienia. Tutaj, NULL Wartość jest używana dla ID pole. W drugiej instrukcji wkładki wszystkie pola, z wyjątkiem pola automatycznego wzrostu są wymienione w zapytaniu do wstawu, ponieważ zostanie ono generowane automatycznie. Następnie instrukcja Select jest wykonywana w celu wyświetlania zawartości studenci tabela.

Utwórz studentów tabeli (
Id int unsigned auto_increment,
Nazwa varchar (50) nie null,
Batch Smallint, a nie null,
Semestr Smallint Not Null,
Klucz podstawowy (id)
);
Wstaw do wartości uczniów
(NULL, „MASRAFI”, 41, 9);
Wstaw do uczniów (nazwa, partia, semestr) wartości
(„Sakib”, 43, 7);
Wybierz * od studentów;

Możesz ręcznie ustawić wartość pola automatycznego wzrostu, ale musisz zachować kolejność sekwencyjną. Nie możesz ustawić żadnej wartości niższej niż ostatnia wartość wstawiona lub równa jakiejkolwiek istniejącej wartości. Poniższa instrukcja pierwszej wstawki będzie działać poprawnie, ponieważ ostatnia włożona wartość wynosiła 2. Druga instrukcja wstawka wygeneruje błąd, ponieważ wartość 2 już istnieje w tabeli.

Wstaw do wartości uczniów
(4, „Robel”, 41, 9);
Wstaw do wartości uczniów
(2, „Manzarul”, 41, 9);

Utwórz tabelę z automatycznym wzrostem i niepodpisaną zerofilem:

Wspomniał wcześniej, że pole automatycznego wzrostu zaczyna się od 1 domyślnie. Ale jeśli użyjesz atrybutu zerofilia bez znaku z polem automatycznego zbieracza i ustawisz długość liczby, liczba zostanie wygenerowana z zero zerowym na podstawie długości. Poniższa instrukcja Utwórz utworzy tabelę o nazwie nauczyciele gdzie ustawiane są atrybuty automatycznego wzrostu i niepodpisanej zerowej tch_id pole i długość pola jest ustawiona na 4. Następnie niektóre dane zostaną włożone do tabeli według instrukcji Insert, a instrukcja Select wyświetli całą zawartość tabeli.

Utwórz nauczycieli tabeli (
TCH_ID Mediumint (4) Unsigned ZeroFill Auto_increment,
Nazwa varchar (50) nie null,
Departament Varchar (10) nie null,
Klucz podstawowy (TCH_ID)
);
Wstaw do wartości nauczycieli
(NULL, „Maria”, „cse”),
(NULL, „Janifer”, „BBA”),
(NULL, „Micheal”, „Eng”);
Wybierz * od nauczycieli;

Tutaj pokazano 0001, 0002 I 0003 są generowane jako wartości tch_id.

Teraz, jeśli usuniesz ostatni rekord i wstawisz nowy rekord, wówczas nowy numer więcej usuniętej wartości tch_id zostanie wygenerowana jako nowa tch_id.

Usuń od nauczycieli, gdzie tch_id = 3;
Wstaw do wartości nauczycieli
(Null, „mahmuda”, „cse”);
Wybierz * od nauczycieli;

Resetowanie pola automatycznego wzrostu:

Jeśli wszystkie rekordy zostaną usunięte z nauczyciele Tabela zawierająca pole automatycznego wzrostu, a następnie nowy Wartość TCH_ID zostanie wygenerowane po ostatniej wartości wstawionej. Po uruchomieniu następujących instrukcji SQL zostanie pokazane, że nowo wygenerowane tch_id Jest 0005 Ponieważ ostatnia wartość wstawiona była 0004.

Usunąć od nauczycieli;
Wstaw do wartości nauczycieli
(Null, „Lucy”, „eee”);
Wybierz * od nauczycieli;

Jeśli chcesz zresetować tabelę i ponownie uruchomić wartość od 1, musisz wykonać instrukcję obrotową zamiast instrukcji Delete. Jest to pokazane w następnych trzech stwierdzeniach.

NUNCED TABLE TABELES;
Wstaw do wartości nauczycieli
(Null, „Lucy”, „eee”);
Wybierz * od nauczycieli;

Po uruchomieniu instrukcji otrzymasz następujące dane wyjściowe.

Jeśli chcesz zmienić wartość domyślną pól automatycznego wzrostu. Następnie wstaw rekord i sprawdź wartość pola automatycznego wprowadzania. Tutaj zostanie ustawiona wartość początkowa 15.

NUNCED TABLE TABELES;
Alter Table Teachers Auto_increment = 15;
Wstaw do wartości nauczycieli
(Null, „Lucy”, „eee”);
Wybierz * od nauczycieli;

Następujące dane wyjściowe pojawią się po uruchomieniu powyższych instrukcji SQL.

Wniosek:

Cele atrybutu auto-increment zostały poprawnie wyjaśnione za pomocą przykładowych tabel w tym artykule, aby pomóc użytkownikowi MySQL w zrozumieniu zastosowań tego atrybutu.