MySQL set Standard-id-UUID
Ich versuche zum erstellen von Tabellen in einer Datenbank, die eine id
Feld, füllen Sie das id eine UUID standardmäßig.
Habe ich versucht, etwas wie:
CREATE TABLE FOO (
id CHAR(36) PRIMARY KEY DEFAULT uuid()
);
Ich sehr zu schätzen Ihre Hilfe.
- Mögliche Duplikate von Kann ich eine Funktion für einen Standard-Wert in MySql?
Du musst angemeldet sein, um einen Kommentar abzugeben.
MySQL 5.7 unterstützt nicht die Verwendung einer Funktion als default-Wert einer Spalte.
https://dev.mysql.com/doc/refman/5.7/en/data-type-defaults.html
Die alternative wäre, verwenden Sie einen trigger zum überwachen der
BEFORE INSERT
der gewünschten Tabelle.Dies wird sich ändern Sie den Standardwert einer
INSERT
- Anweisung, um dieuuid()
Wert, es sei denn, es wurde ausdrücklich definiert.NOW()
nicht verwendet, aber die ständigenCURRENT_TIMESTAMP
ist.DEFAULT NOW()
es wird konvertiert werden, umCURRENT_TIMESTAMP
bei der VerwendungSHOW CREATE TABLE foo
.Wenn Sie
binary(16)
als der Typ Sie können die Standardeinstellung wie folgt: