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!