Ce face DATABASE()
Baza de date curentă este cea aleasă cu USE nume_baza sau la conectare. Tabelele scrise fără prefix (produse în loc de magazin.produse) sunt căutate în ea. SCHEMA() este sinonim pentru DATABASE().
Dacă nu este aleasă nicio bază de date, funcția returnează NULL. Într-o procedură stocată, DATABASE() este baza de date în care a fost creată procedura, nu cea a apelantului.
Ce returnează
Numele bazei de date (text utf8mb3) sau NULL.
Exemple
Exemplul 1: Baza curentă după USE și după ștergerea ei
CREATE DATABASE magazin_test;
USE magazin_test;
SELECT DATABASE(), SCHEMA();
DROP DATABASE magazin_test;
SELECT DATABASE() AS dupa_stergere;
Rezultat
+--------------+--------------+
| DATABASE() | SCHEMA() |
+--------------+--------------+
| magazin_test | magazin_test |
+--------------+--------------+
+---------------+
| dupa_stergere |
+---------------+
| NULL |
+---------------+
Exemplul 2: Tabelele din baza curentă
DATABASE() este folosită des în interogări pe information_schema, ca să nu scrii numele bazei de mână.
CREATE TABLE clienti (id INT);
CREATE TABLE comenzi (id INT);
SELECT TABLE_NAME
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = DATABASE()
ORDER BY TABLE_NAME;
Rezultat
+------------+
| TABLE_NAME |
+------------+
| clienti |
| comenzi |
+------------+
Greșeli frecvente
- Folosești
DATABASE()într-o procedură stocată ca să afli baza aplicației care a apelat-o. Primești baza în care a fost creată procedura.
Comenzi înrudite
CREATE DATABASE: Creează o bază de date nouă, în care vei crea apoi tabelele.USER(): Returnează utilizatorul și calculatorul de pe care s-a conectat clientul, ca text „nume@gazdă”.VERSION(): Returnează versiunea serverului MySQL, ca text (de exemplu 8.4.6).