MySQL DEFAULT Tutorial

MySQL DEFAULT definise podrazumevane vrednosti po kolonama. Na primer, ako zaboravite uneti vrednost u neko polje, unapred je zadata podrazumevana vrednost.

MySQL DEFAULT upotrebljavama slicno kao i CHECK:

mysql> CREATE TABLE defaultklijenti
    -> (
    -> p_id int NOT NULL PRIMARY KEY,
    -> ime varchar(255) NOT NULL,
    -> prezime varchar(255),
    -> adresa varchar(255),
    -> grad varchar(255) DEFAULT 'Beograd'
    -> );
Query OK, 0 rows affected (0.06 sec)

mysql>
mysql> DESCRIBE defaultklijenti;
+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| p_id    | int(11)      | NO   | PRI | NULL    |       |
| ime     | varchar(255) | NO   |     | NULL    |       |
| prezime | varchar(255) | YES  |     | NULL    |       |
| adresa  | varchar(255) | YES  |     | NULL    |       |
| grad    | varchar(255) | YES  |     | Beograd |       |
+---------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

mysql>

Prethodnim kodom smo kreirali tabelu sa klijentima, gde imamo za kolonu Grad podrazumevanu vrednost "Beograd".

Naknadno umetanje i brisanje podrazumevane vrednosti

Nakon izvesnog vremena ce nam se desiti da imamo mnogo istih podataka u jednoj koloni, pa da ne bi mnogo kucali, u pomoc priskace ALTER TABLE:

ALTER TABLE defaultklijenti
ALTER grad SET DEFAULT 'NekiDrugi'
mysql> ALTER TABLE defaultklijenti
    -> ALTER grad SET DEFAULT 'NekiDrugi';
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> describe defaultklijenti;
+---------+--------------+------+-----+-----------+-------+
| Field   | Type         | Null | Key | Default   | Extra |
+---------+--------------+------+-----+-----------+-------+
| p_id    | int(11)      | NO   | PRI | NULL      |       |
| ime     | varchar(255) | NO   |     | NULL      |       |
| prezime | varchar(255) | YES  |     | NULL      |       |
| adresa  | varchar(255) | YES  |     | NULL      |       |
| grad    | varchar(255) | YES  |     | NekiDrugi |       |
+---------+--------------+------+-----+-----------+-------+
5 rows in set (0.00 sec)

mysql>

Ovako deaktiviramo DEFAULT:

ALTER TABLE defaultklijenti
ALTER grad DROP DEFAULT
mysql> ALTER TABLE defaultklijenti
    -> ALTER grad DROP DEFAULT;
Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> describe defaultklijenti;
+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| p_id    | int(11)      | NO   | PRI | NULL    |       |
| ime     | varchar(255) | NO   |     | NULL    |       |
| prezime | varchar(255) | YES  |     | NULL    |       |
| adresa  | varchar(255) | YES  |     | NULL    |       |
| grad    | varchar(255) | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+
5 rows in set (0.02 sec)

mysql>