Lösen Sie das Problem, dass MySQL einen ungültigen Standardwert für den Fehler „operate_time“ meldet.

Lösen Sie das Problem, dass MySQL einen ungültigen Standardwert für den Fehler „operate_time“ meldet.

Führen Sie die Anweisung „create table“ in der Datenbank aus.

TABELLE `sys_acl` erstellen (
 `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Autorisierungs-ID',
 `code` varchar(20) NOT NULL DEFAULT '' COMMENT 'Autorisierungscode',
 `name` varchar(20) NOT NULL DEFAULT '' COMMENT 'Autorisierungsname',
 `acl_module_id` int(11) NOT NULL DEFAULT '0' COMMENT 'Autorisierungsmodul-ID, in der sich die Berechtigung befindet',
 `url` varchar(100) NOT NULL DEFAULT '' COMMENT 'Angeforderte URL, kann mit regulärem Ausdruck gefüllt werden',
 `Typ` int(11) NICHT NULL STANDARD '3' KOMMENTAR 'Typ, 1: Menü, 2: Schaltfläche, 3: Sonstiges',
 `status` int(11) NOT NULL DEFAULT '1' COMMENT 'Status, 1: normal, 0: eingefroren',
 `seq` int(11) NOT NULL DEFAULT '0' COMMENT 'Die Reihenfolge der Berechtigungen im aktuellen Modul, von klein nach groß',
 `Bemerkung` varchar(200) DEFAULT '' COMMENT 'Bemerkungen',
 `Operator` varchar(20) NICHT NULL STANDARD '' KOMMENTAR 'Operator',
 `operate_time` datetime NICHT NULL STANDARD CURRENT_TIMESTAMP KOMMENTAR 'Letzte Aktualisierungszeit',
 `operate_ip` varchar(20) NOT NULL DEFAULT '' COMMENT 'Die IP-Adresse des letzten Updaters',
 PRIMÄRSCHLÜSSEL (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;

Melden Sie den Fehler „Ungültiger Standardwert für ‚operate_time‘“.

Nachdem ich die Informationen überprüft hatte, stellte ich fest, dass MySQL 5.6 und höher den Datums-/Uhrzeittyp unterstützten. Daher änderte ich Datum/Uhrzeit in Zeitstempel und löste das Problem erfolgreich.

Der Unterschied zwischen Datum und Uhrzeit und Zeitstempel ist nicht besonders groß. Die Hauptunterschiede sind wie folgt:

1. Die Speichermethoden der beiden sind unterschiedlich

Für TIMESTAMP konvertiert es die vom Client eingegebene Zeit zur Speicherung von der aktuellen Zeitzone in UTC (Koordinierte Weltzeit). Bei der Abfrage wird diese in die aktuelle Zeitzone des Clients umgerechnet und zurückgegeben. Für DATETIME werden keine Änderungen vorgenommen und die Ein- und Ausgabe erfolgt grundsätzlich unverändert.

2. Der von beiden gespeicherte Zeitbereich ist unterschiedlich

Der Zeitbereich, den der Zeitstempel speichern kann, ist: „1970-01-01 00:00:01.000000“ bis „2038-01-19 03:14:07.999999“.

Der Zeitbereich, den datetime speichern kann, ist: „1000-01-01 00:00:00.000000“ bis „9999-12-31 23:59:59.999999“.

Zusammenfassen:

Abgesehen vom Speicherbereich und der Speichermethode gibt es zwischen TIMESTAMP und DATETIME keinen großen Unterschied.

Natürlich ist TIMESTAMP für Geschäfte über Zeitzonen hinweg besser geeignet.

Referenzlink: MYSQL-Unterschied zwischen Datenzeit und Zeitstempel

Ergänzung: Lösung für die Fehlermeldung „1067 - Ungültiger Standardwert für 'UPDATE_TIME'“ in MySQL

Da das Feld UPDATE_TIME von tmp_wrh_1 vom Typ Zeitstempel ist, lautet der Standardwert: „0000-00-00 00:00:00“

Im Augenblick:

`UPDATE_TIME` Zeitstempel NICHT NULL STANDARD '0000-00-00 00:00:00' KOMMENTAR 'Aktualisierungszeit';

Bei der Arbeit an diesem Tisch

wie:

alter table tmp_wrh_1 MODIFY column BUSINESS_TYPE varchar(5) comment 'hhr-service fee withdrawal'; -- Ausführung fehlgeschlagen

Es erscheint eine Fehlermeldung: 1067 - Ungültiger Standardwert für 'UPDATE_TIME'

Problemanalyse:

Da der Wertebereich des Zeitstempeltyps ist: 1970-01-01 00:00:00 bis 2037-12-31 23:59:59,

Daher muss der Standardwert des Feldes UPDATE_TIME auf einen Wert zwischen 1970-01-01 00:00:00 und 2037-12-31 23:59:59 geändert werden.

Es wurde festgestellt, dass der Standardwert erst nach dem 01.01.1970, 10:00:00 Uhr erfolgreich geändert werden kann. Ich weiß nicht, warum!

Problem gelöst:

Tabelle tmp_wrh_1 ändern, Spalte update_time ändern, Standard löschen;
Tabelle tmp_wrh_1 ändern, Spalte UPDATE_TIME ändern, Standard auf „1970-01-01 10:00:00“ setzen;
alter table tmp_wrh_1 MODIFY column BUSINESS_TYPE varchar(5) comment 'hhr-service fee withdrawal'; --Ausführung erfolgreich

Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur.

Das könnte Sie auch interessieren:
  • Analyse und Lösung häufiger MySQL-Fehler
  • Lösung für MySQL-Systemfehler 1067
  • So beheben Sie verschiedene Fehler bei der Verwendung von JDBC zum Herstellen einer Verbindung zu Mysql 8.0.11

<<:  Eine detaillierte Erklärung der DIV+CSS-Benennungsregeln kann zur SEO-Optimierung beitragen

>>:  Detaillierte Erklärung der Lösung für den Absturz von Tomcat beim Doppelklicken auf startup.bat

Artikel empfehlen

Einführung mehrerer benutzerdefinierter Schriftarten in CSS3

Heute habe ich ein Problem in HTML gefunden. Es s...

JavaScript implementiert das Topfschlagen-Spiel von Gray Wolf

1. Projektdokumente 2. Verwenden Sie HTML und CSS...

Die Implementierung der Ereignisbindung in React verweist auf drei Methoden

1. Pfeilfunktion 1. Nutzen Sie die Tatsache, dass...

Praktische Aufzeichnung der MySQL 5.6 Master-Slave-Fehlerberichterstattung

1. Problemsymptome Version: MySQL 5.6, unter Verw...

Implementierung der Breakpoint-Wiederaufnahme in Node.js

Vorwort Normaler Geschäftsbedarf: Hochladen von B...

Das kürzeste JS, um festzustellen, ob es sich um IE6 handelt (IE-Schreibmethode)

Häufig verwendeter JavaScript-Code zum Erkennen d...

Einführung in die allgemeine API-Verwendung von Vue3

Inhaltsverzeichnis Veränderungen im Lebenszyklus ...

Docker+Selenium-Methode zur Realisierung automatischer Gesundheitsberichte

In diesem Artikel wird das Gesundheitsmeldesystem...

Warum MySQL große Transaktionen vermeiden sollte und wie man sie löst

Was ist eine große Sache? Transaktionen, die über...

Zusammenfassung der Erfahrungen mit der Verwendung des Div-Box-Modells

Berechnung des Boxmodells <br />Rand + Rahme...

Natives JS zum Erstellen eines verschiebbaren Anmeldefelds

Dieser Artikel zeigt ein verschiebbares Anmeldefe...

So weisen Sie Feldern bei der MySQL-Abfrage Standardwerte zu

brauchen Wenn Sie ein Feld abfragen, müssen Sie e...