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

Kann MySQL Funktionen verwenden, um Standardspaltenwerte festzulegen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-17 05:21:26823Durchsuche

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()
);

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();

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!

Stellungnahme:
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