skanuj0280 (3)

skanuj0280 (3)



294 PHP i MySQL dla każdego

lub

INSERT INTO Klienci (Klientld. Imię. Nazwisko) VALUES (1, 'Jan'. 'Kowalski');

Zwróćmy uwagę na to, że w pierwszym przypadku, ponieważ wstawialiśmy wartości do wszystkich pól, nie trzeba było podawać nazw kolumn, ale w przypadku drugim nazwy kolumn były niezbędne. Co by się jednak stało, gdybyśmy spróbowali wykonać pierwszą z powyższych instrukcji, ale pole Adres było polem wymaganym (czyli zostałoby zdefiniowane jako NOT NULL)? Otóż zostałby zgłoszony komunikat o błędzie, widoczny na rysunku 10.3.

nysql> insert into KLIENCI i ERROR^1048 <23000): Colunn 1

Rysunek 10.3. Efekt próby wprowadzenia wartości NULL do kolumny zdefiniowanej jako NOT NULL

Jest jednak sytuacja, w której do pola w kolumnie zdefiniowanej jako NOT NULL można wprowadzić wartość pustą. Jak się zapewne domyślamy, są to pola typu AUT0_ INCREMENT. W takim wypadku wprowadzenie wartości typu NULL jest nie tylko możliwe, ale i niezbędne do prawidłowego działania. Załóżmy, że tabela KI ienci została utworzona za pomocą nieco zmodyfikowanej instrukcji CREATE w postaci:

CREATE TABLE KLIENCI!

Klientld INTEGER PRIMARY KEY AUTOJNCREMENT.

Imię VARCHAR(25).

Nazwisko VARCHAR (25).

Adres YARCHAR (60)

Jak pamiętamy, pola typu AUTO_INCREMENT automatycznie uzyskują atrybut NOT NULL. Jednak instrukcja INSERT powinna mieć w tym przypadku postać:

INSERT INTO Klienci VALUES (NULL. 'Jan', 'Kowalski'. 'Klonowa 24. Poznań'):

wprowadzana do kolumny Klientld wartość NULL zostanie bowiem automatycznie zamieniona na kolejną wartość całkowitą. W przypadku pierwszego wiersza będzie to 1, w przypadku drugiego wiersza — 2 itd. Nie oznacza to jednak, że do pola AUT0_ INCREMENT nie można wprowadzić własnej wartości. Jeśli po wykonaniu powyższej instrukcji chcemy wprowadzić do bazy dane Andrzeja Nowaka, zamieszkałego przy ulicy Lipowej 50 we Wrocławiu, i chcemy jednocześnie nadać mu określony identyfikator, np. 25, nic nie stoi na przeszkodzie, aby wykonać instrukcję:

INSERT INTO Kl1enc1 VALUES (25, 'Andrzej'. 'Nowak', 'Lipowa 50. Wrocław'):

Musimy jednak pamiętać, że kolejny wiersz, który będzie korzystał z funkcji AUT0_ INCREMENT, będzie miał już numer 26 (o jeden większy niż maksymalna ostatnio zapisana wartość w kolumnie).

Warto również wiedzieć, że kolejność wprowadzania danych w instrukcji INSERT nie musi być taka sama, jak struktura kolumn w tabeli. Prawidłowa jest zatem również konstrukcja:

INSERT INTO Klienci (Nazwisko. Imię. Adres. Klientld) VALUES ('Kowalski'. 'Jan'. 'Klonowa 24, Poznań', NULL);


Wyszukiwarka

Podobne podstrony:
skanuj0339 (2) 354 PHP i MySQL dla każdego INSERT INTO Książki VALU£S (1. 2. Uczeń skrytobójcy , •8
skanuj0396 (2) 412 PHP i MySQL dla każdeg: 1f(!$row - mysql_fetch_row($result)){ //nieprawidłowa naz
55857 skanuj0282 (3) 296 PHP i MySQL dla każdego INSERT CINTO] tabela [.(.kolumnal.
skanuj0114 (20) 126 PHP i MySQL dla każdego Rysunek 4.17. Efekt działania funkcji array_count_values
skanuj0161 (9) 172 PHP i MySQL dla każdego Zwraca ona ciąg strl, z którego począwszy od znaku o inde
skanuj0163 (9) 174 PHP i MySQL dla każdego Listing 6.12. Wykorzystanie funkcji strtok <?php $str

więcej podobnych podstron