Heim >Datenbank >MySQL-Tutorial >Warum erhalte ich „Ungültiger Standardwert für „create_date'', wenn ich „0000-00-00 00:00:00' als Standard für ein TIMESTAMP-Feld in MySQL verwende?
Behebung eines ungültigen Standardwerts für das TIMESTAMP-Feld in MySQL
Beim Versuch, eine Tabelle mit einem TIMESTAMP-Feld zu erstellen und einen Standardwert von „anzugeben“ 0000-00-00 00:00:00‘, kann die Fehlermeldung „Ungültiger Standardwert für ‚create_date‘“ auftreten. Dies liegt häufig an einer SQL-Moduseinstellung des MySQL-Servers.
Erklärung
Der SQL-Modus NO_ZERO_DATE erzwingt Strenge bei der Handhabung von Nulldaten. Es verhindert das Einfügen von „0000-00-00“ als gültiges Datum und betrachtet es als ungültigen Wert.
Lösung
Um den Fehler zu beheben, können Sie Folgendes tun: :
Deaktivieren Sie den NO_ZERO_DATE SQL-Modus:
<code class="mysql">SET SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ENGINE_SUBSTITUTION';</code>
Verwenden Sie die Option IGNORE, um das Einfügen von Nulldaten zu ermöglichen:
<code class="mysql">CREATE TABLE IF NOT EXISTS `erp`.`je_menus` ( `id` INT(11) NOT NULL AUTO_INCREMENT , `name` VARCHAR(100) NOT NULL , `description` VARCHAR(255) NOT NULL , `live_start_date` DATETIME NULL DEFAULT NULL , `live_end_date` DATETIME NULL DEFAULT NULL , `notes` VARCHAR(255) NULL , `create_date` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' IGNORE, `created_by` INT(11) NOT NULL , `update_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , `updated_by` INT(11) NOT NULL , `status` VARCHAR(45) NOT NULL , PRIMARY KEY (`id`) ) ENGINE = InnoDB;</code>
Sobald Sie diese Anpassungen vorgenommen haben, sollten Sie in der Lage sein, die Tabelle mit dem angegebenen Standardwert für das TIMESTAMP-Feld erfolgreich zu erstellen.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich „Ungültiger Standardwert für „create_date'', wenn ich „0000-00-00 00:00:00' als Standard für ein TIMESTAMP-Feld in MySQL verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!