Heim > Datenbank > MySQL-Tutorial > Kann MySQL Funktionen verwenden, um Standardspaltenwerte festzulegen?

Kann MySQL Funktionen verwenden, um Standardspaltenwerte festzulegen?

Mary-Kate Olsen
Freigeben: 2024-12-17 05:21:26
Original
820 Leute haben es durchsucht

Can MySQL Use Functions to Set Default Column Values?

Standardwerte mit Funktionen in MySQL zuweisen

In MySQL werden Standardwerte für Tabellenspalten normalerweise als statische Werte festgelegt, z. B. als Konstanten oder Ausdrücke. Einige Benutzer können jedoch auf Fälle stoßen, in denen sie mithilfe von Funktionen Standardwerte zuweisen möchten. Diese Frage untersucht, ob eine solche Funktionalität in MySQL unterstützt wird.

Frage:

Kann MySQL mithilfe von Funktionen Standardspaltenwerte zuweisen? Kann beispielsweise die folgende Anweisung erfolgreich ausgeführt werden?

create table app_users
(
    app_user_id smallint(6) not null auto_increment primary key,
    api_key     char(36) not null default uuid()
);
Nach dem Login kopieren

Antwort:

Nein, MySQL erlaubt keine Zuweisung von Standardspaltenwerten mithilfe von Funktionen. Versuche, dies zu tun, führen zu einem Fehler.

Lösung:

Während MySQL selbst keine funktionsbasierten Standardwerte unterstützt, kann eine Problemumgehung mithilfe von Triggern erreicht werden. Hier ist ein Beispiel-Trigger, der der Spalte „api_key“ einen Standard-UUID-Wert zuweist, bevor eine neue Zeile in die Tabelle „app_users“ eingefügt wird:

CREATE TRIGGER before_insert_app_users
  BEFORE INSERT ON app_users 
  FOR EACH ROW
  SET new.api_key = uuid();
Nach dem Login kopieren

Dieser Trigger generiert automatisch für jede neue Zeile eine neue UUID und weist diese der Spalte „api_key“ zu Zeile in die Tabelle app_users eingefügt.

Das obige ist der detaillierte Inhalt vonKann MySQL Funktionen verwenden, um Standardspaltenwerte festzulegen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage