Funktionen für Standardwerte in MySQL verwenden
Standardmäßig unterstützt MySQL nicht die Verwendung von Funktionen als Standardwerte für Spalten. Dies wird im bereitgestellten Beispiel deutlich:
create table app_users ( app_user_id smallint(6) not null auto_increment primary key, api_key char(36) not null default uuid() );
Diese Abfrage würde zu einem Fehler führen. Es gibt jedoch Problemumgehungen, um eine ähnliche Funktionalität zu erreichen.
Verwenden von Triggern
Eine Möglichkeit, die Verwendung von Funktionen für Standardwerte zu simulieren, sind Trigger. Trigger sind Datenbankobjekte, die automatisch ausgeführt werden, wenn ein bestimmtes Ereignis eintritt, beispielsweise das Einfügen von Daten in eine Tabelle. Hier ist ein Trigger, der zum Generieren des api_key-Werts verwendet werden kann:
CREATE TRIGGER before_insert_app_users BEFORE INSERT ON app_users FOR EACH ROW SET new.api_key = uuid();
Dieser Trigger wird vor jeder Einfügung in die app_users-Tabelle ausgeführt. Es setzt die api_key-Spalte der neu eingefügten Zeile auf einen UUID-Wert, der von der Funktion uuid() generiert wird.
Einschränkungen und Überlegungen
Während die Verwendung von Triggern eine Problemumgehung darstellt, Es gibt Einschränkungen:
Andere Ansätze
In Zusätzlich zu den Auslösern sind noch andere Ansätze zu berücksichtigen:
Der beste Ansatz hängt von den spezifischen Anforderungen und Einschränkungen Ihrer Anwendung ab.
Das obige ist der detaillierte Inhalt vonKönnen MySQL-Spalten Funktionen für Standardwerte verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!