DATABASE() în MySQL

Returnează numele bazei de date curente (aleasă cu USE) sau NULL dacă nu e aleasă niciuna.

Sintaxă
DATABASE()
SCHEMA()

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).