Gibt es eine Möglichkeit, eine Einfüge- / Aktualisierungsabfrage zu schreiben, die prüft, ob eine Spalte dies zulässt NULLs
: Wenn die Spalte auf gesetzt ist NULL
, und ''
(leere Zeichenfolge) andernfalls?
Ich wäre so etwas wie:
UPDATE mytable
SET field = IF(A_FUNCTION_TO_CHECK_IF_ALLOWS_NULL(), NULL, '');
UPDATE mytable SET field = ''; UPDATE mytable SET field = NULL;
(Die 2. Anweisung wird nicht erfolgreich sein, wenn die Spalte einNOT NULL
Attribut hat.Antworten:
Sie können INFORMATION_SCHEMA abfragen:
http://dev.mysql.com/doc/refman/5.0/en/columns-table.html
In der Tabelle INFORMATION_SCHEMA.COLUMNS befindet sich eine Spalte IS_NULLABLE.
Sie könnten es in eine Funktion verwandeln, wie ich mir vorstellen kann, aber ich würde diese Logik wahrscheinlich in einen äußeren Teil setzen.
quelle
INFORMATION_SCHEMA.COLUMNS
: dba.stackexchange.com/a/28745/877 geschrieben, wie alle Null- und Nicht-Null-Spaltennamen für eine bestimmte Tabelle erfasst werden . Ihre direkte Antwort erhält +1 !!!Cades Antwort ist richtig, aber die Informationen direkt vom Link:
quelle