Ce face DEFAULT()
DEFAULT(coloana) citește valoarea din definiția DEFAULT a coloanei. Se folosește de exemplu în UPDATE, ca să readuci o coloană la valoarea implicită sau să calculezi pornind de la ea.
Funcția merge doar pentru coloanele cu o valoare implicită simplă (literal, ca DEFAULT 5), nu pentru cele cu expresie (DEFAULT (UUID())). Dacă o coloană nu are valoare implicită, primești eroare. Nu o confunda cu cuvântul cheie DEFAULT din INSERT ... VALUES (DEFAULT).
Parametri
| Parametru | Descriere |
|---|---|
coloana |
Numele coloanei. |
Ce returnează
Valoarea implicită a coloanei.
Exemple
Exemplul 1: Valorile implicite ale coloanelor
CREATE TABLE produse (
id INT PRIMARY KEY,
nume VARCHAR(30),
stoc INT DEFAULT 10,
stare VARCHAR(15) DEFAULT 'activ'
);
INSERT INTO produse VALUES (1, 'Laptop', 3, 'promoție');
SELECT nume, stoc, DEFAULT(stoc) AS stoc_implicit, stare, DEFAULT(stare) AS stare_implicita
FROM produse;
Rezultat
+--------+------+---------------+-----------+-----------------+
| nume | stoc | stoc_implicit | stare | stare_implicita |
+--------+------+---------------+-----------+-----------------+
| Laptop | 3 | 10 | promoție | activ |
+--------+------+---------------+-----------+-----------------+
Exemplul 2: Readucerea la valoarea implicită
CREATE TABLE produse (
id INT PRIMARY KEY,
nume VARCHAR(30),
stare VARCHAR(15) DEFAULT 'activ'
);
INSERT INTO produse VALUES (1, 'Laptop', 'promoție'), (2, 'Mouse', 'lichidare');
UPDATE produse SET stare = DEFAULT(stare) WHERE id = 1;
SELECT * FROM produse;
Rezultat
+----+--------+-----------+
| id | nume | stare |
+----+--------+-----------+
| 1 | Laptop | activ |
| 2 | Mouse | lichidare |
+----+--------+-----------+
Greșeli frecvente
- Folosești
DEFAULT()pe o coloană cu valoare implicită calculată, caDEFAULT (UUID())sauCURRENT_TIMESTAMP. Funcția este permisă doar pentru valori implicite simple.
Comenzi înrudite
CREATE TABLE: Creează un tabel nou, cu coloanele și tipurile lor de date.UPDATE: Modifică valorile din rândurile existente ale unui tabel.INSERT INTO: Adaugă unul sau mai multe rânduri noi într-un tabel.