sql >> Database teknologi >  >> RDS >> MariaDB

MariaDB SYSTEM_USER() Forklaret

I MariaDB, SYSTEM_USER() er et synonym for USER() fungere. Det returnerer det aktuelle MariaDB-brugernavn og værtsnavn, givet ved godkendelse til MariaDB.

Syntaks

Syntaksen ser sådan ud:

SYSTEM_USER()

Ingen argumenter er påkrævet eller accepteret.

Eksempel

Her er et eksempel til demonstration:

SELECT SYSTEM_USER();

Resultat:

+------------------+
| SYSTEM_USER()    |
+------------------+
| [email protected] |
+------------------+

SYSTEM_USER() vs CURRENT_USER()

Der er også en anden funktion kaldet CURRENT_USER() der gør noget lignende. Det returnerer dog ikke altid det samme resultat som SYSTEM_USER() .

For eksempel, hvis vi forbinder ved hjælp af anonymous :

mariadb --user="anonymous"

Kør derefter SYSTEM_USER() og CURRENT_USER() :

SELECT 
    SYSTEM_USER(),
    CURRENT_USER;

Resultat:

+---------------------+--------------+
| SYSTEM_USER()       | CURRENT_USER |
+---------------------+--------------+
| [email protected] | @localhost   |
+---------------------+--------------+

Men hvis vi hopper tilbage til vores forrige session (i det oprindelige terminalvindue), returnerer hver funktion de samme resultater:

SELECT 
    SYSTEM_USER(),
    CURRENT_USER;

Resultat:

+------------------+------------------+
| SYSTEM_USER()    | CURRENT_USER     |
+------------------+------------------+
| [email protected] | [email protected] |
+------------------+------------------+

Ingen argumenter accepteres

Sender eventuelle argumenter til SYSTEM_USER() resulterer i en fejl:

SELECT SYSTEM_USER(123);

Resultat:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '123)' at line 1

Udsagn ved hjælp af SYSTEM_USER() funktion (eller USER() og SESSION_USER() ) er ikke sikre til replikering på sætningsniveau.


  1. SQL Server-fejl 213:Kolonnenavnet eller antallet af angivne værdier matcher ikke tabeldefinitionen.

  2. TIMESTAMPADD() Eksempler – MySQL

  3. MySQL COUNT FORSKEL

  4. rigtige syntaks at bruge i nærheden af ​​'?'