Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: o co chodzi z atrybutem DEFAULT
Forum PHP.pl > Forum > Bazy danych > MySQL
PrzemasJG
:?:
Witam!
Mam problem ze zrozumieniem pola DEFAULT.
Jak widać poniżej w tabeli user w polach status i lastlogin ustawiam wartość
domyślną na 1 i 2.
Kiedy wstawiam dane do poszczególnych pól w polach status i lastlogin nie
wstawiam nic i wydawało mi się,że powinny pojawić się tam wartości 1 i 2, a tak się nie dzieje, jak widać poniżej. Pojawiają się tylko zera. Dlaczego tak się dzieje???

Oto linijka za pomocą której wprowadzam dane:
INSERT INTO user VALUES (0,'admin',password('xyz'),'',2,'');


mysql> desc user;
+-----------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+------------------+------+-----+---------+----------------+
| id | int(11) unsigned | | PRI | NULL | auto_increment |
| login | varchar(40) | | | | |
| passwd | varchar(40) | | | | |
| status | int(11) unsigned | | | 1 | |
| auth | int(11) unsigned | | | 1 | |
| lastlogin | int(11) unsigned | | | 2 | |
+-----------+------------------+------+-----+---------+----------------+
6 rows in set (0.07 sec)

mysql> select * from user;
+----+--------+------------------+--------+------+-----------+
| id | login | passwd | status | auth | lastlogin |
+----+--------+------------------+--------+------+-----------+
| 1 | admin | 43e9a4ab75570f5b | 0 | 2 | 0 |
| 2 | admin2 | 2a4cbe2d729af488 | 0 | 122 | 0 |
| 3 | jkowal | 606706156665cd86 | 0 | 1 | 0 |
+----+--------+------------------+--------+------+-----------+
3 rows in set (0.02 sec)
msulik
Dzieje się tak dlatego, że poprzez wartość pustą (dwa apostrofy) wstawiasz dane do danych komórek, więc określasz explicite konkretną wartość (w tym przypadku jest ona konwertowana do typu int). Jeśli nie chcesz wstawiać tam żadnej wartości, to wykonaj takie polecenie:
Kod
INSERT INTO

  user (login, passwd, auth)

VALUES

  ('admin',password('xyz'),2)
W powyższym poleceniu określasz, do których kolumn wstawiasz dane. Do pozostałych zostaną wstawione wartości domyślne.

RTFM: INSERT Syntax
PrzemasJG
Dzięki za podpowiedz. Teraz jest jak należy :-)

Przemek
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.