How to set default enum-Wert wenn Sie eine ungültige enum-Wert in MYSQL?
Ich habe eine Tabelle
CREATE TABLE `enum_test` (
`id` int(10) default NULL,
`value` enum('YES','NO') NOT NULL default 'YES'
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
führen Sie dann folgenden Abfrage
INSERT INTO enum_test(id) VALUES (2); set 'YES' in `enum` field.
INSERT INTO enum_test(id,value) VALUES (2,1); set 'YES' in `enum` field.
Aber
//why below query set blank value in enum field??
INSERT INTO enum_test(id, value) VALUES (2, 'YESS');
Möchte ich, dass wenn ein Benutzer legen einen Wert, der nicht vorhanden ist in enum
Feld, dann es soll, setzen Sie den Standardwert von enum
wie macht man das?
- Warum würden Sie schweigend ignorieren wollen, mögliche Fehler in der Anwendung?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Finden Sie unter Tomas' Antwort auf ein trigger-oder vielleicht verwenden Sie ein gespeicherte Prozedur.
Dass Sie im Grunde immer eine default-Wert eingefügt. Im strikten Modus wird ein Fehler geworfen werden. Ansonsten:
http://dev.mysql.com/doc/refman/5.0/en/enum.html
Verwenden Sie einen trigger-Funktion, wie diese:
Mehr auf Trigger hier: Mysql-Handbuch, trigger-syntax
edit:
Wie vorgeschlagen, ist es auch möglich, zu definieren, gespeicherte Prozedur und rufen Sie, wenn von dem trigger, die würde ich prüfen, besser für die Datenbank ist die Wartbarkeit.
Trigger sind Teil der Datenbank-definition, so fügen Sie diesen auf eine beliebige sql-Datei mit den CREATE TABLE-Anweisungen.
my database connection page
so dass nur einmal ausgeführt, oder schreiben können müssen auf der Seite, wo ich die Daten einfügen??