wenn Sie die Standardzeit auf einstellen möchten, müssen Sie auf timestamp
ändern in Ihrem Datentyp,
die datetime
wird die Benutzereingabe der Tabelle anzeigen...
http://dev.mysql.com/doc/refman/5.0/en/timestamp-initialization.html
http://dev.mysql.com/doc/refman/5.6/en/timestamp-initialization.html
Als DEFAULT CURRENT_TIMESTAMP
Frage ist bereits beantwortet, ich werde nur auf die Diskrepanz zwischen Groß- und Kleinschreibung in Tabellennamen zwischen Windows und Linux antworten.
Unter Windows wird bei Dateisystemen standardmäßig zwischen Groß- und Kleinschreibung unterschieden.
Aber unter Linux und anderen *NIX-ähnlichen Betriebssystemen wird standardmäßig zwischen Groß- und Kleinschreibung unterschieden.
Der Grund, warum Sie hier eine Diskrepanz im Verhalten erhalten, ist das Dateisystem, da jede Tabelle als separate Datei erstellt wird und das Dateisystem die Groß- und Kleinschreibung für Sie behandelt.
MySQL hat einen Parameter, um dieses Verhalten zu überschreiben:
Unter Unix können Sie beispielsweise zwei verschiedene Tabellen mit dem Namen my_table
haben und MY_TABLE
, aber unter Windows werden diese beiden Namen als identisch angesehen. Um Datenübertragungsprobleme zu vermeiden, die durch die Schreibweise von Datenbank- oder Tabellennamen entstehen, haben Sie zwei Möglichkeiten:
-
Verwenden Sie
lower_case_table_names=1
auf allen Systemen. Der Hauptnachteil dabei ist, dass SieSHOW TABLES
verwenden oderSHOW DATABASES
, sehen Sie die Namen nicht in ihrer ursprünglichen Schreibweise. -
Verwenden Sie
lower_case_table_names=0
unter Unix undlower_case_table_names=2
unter Windows. Dadurch bleibt die Schreibweise von Datenbank- und Tabellennamen erhalten. Der Nachteil dabei ist, dass Sie sicherstellen müssen, dass Ihre Anweisungen unter Windows immer mit der richtigen Schreibweise auf Ihre Datenbank- und Tabellennamen verweisen. Wenn Sie Ihre Anweisungen nach Unix übertragen, wobei die Groß-/Kleinschreibung von Bedeutung ist, funktionieren sie nicht, wenn die Groß-/Kleinschreibung falsch ist.
Ausnahme: Wenn Sie InnoDB-Tabellen verwenden und versuchen, diese Datenübertragungsprobleme zu vermeiden, sollten Sielower_case_table_names=1
festlegen auf allen Plattformen, um die Umwandlung von Namen in Kleinbuchstaben zu erzwingen.
[...]
Um Probleme zu vermeiden, die durch solche Unterschiede verursacht werden, ist es am besten, eine konsistente Konvention zu übernehmen, z. B. Datenbanken und Tabellen immer mit Kleinbuchstaben zu erstellen und auf sie zu verweisen . Diese Konvention wird für maximale Portabilität und Benutzerfreundlichkeit empfohlen.
Dies ist ein Auszug aus dem MySQL-Handbuch zur Groß- und Kleinschreibung von Bezeichnern
Die DEFAULT CURRENT_TIMESTAMP
Unterstützung für DATETIME
(Datentyp) wurde in MySQL 5.6 hinzugefügt.
In 5.5 und früheren Versionen galt dies nur für TIMESTAMP
(Datentyp) Spalten.
Es ist möglich, einen BEFORE INSERT
zu verwenden Trigger in 5.5, um einer Spalte einen Standardwert zuzuweisen.
DELIMITER $$
CREATE TRIGGER ...
BEFORE INSERT ON mytable
FOR EACH ROW
BEGIN
IF NEW.mycol IS NULL THEN
SET NEW.mycol = NOW();
END IF;
END$$
Groß-/Kleinschreibung (bei Abfragen für in Spalten gespeicherte Werte) liegt an collation
für die Säule verwendet. Sortierungen, die auf _ci
enden Groß-/Kleinschreibung wird nicht beachtet. Zum Beispiel latin1_swedish_ci
Groß-/Kleinschreibung wird nicht beachtet, aber latin1_general_cs
unterscheidet zwischen Groß- und Kleinschreibung.
Die Ausgabe von SHOW CREATE TABLE foo
zeigt den Zeichensatz und die Sortierung für die Zeichentypspalten an. Dies wird pro Spalte angegeben. Der auf Tabellenebene angegebene "Standard" gilt für neue Spalten, die der Tabelle hinzugefügt werden, wenn die neue Spaltendefinition keinen Zeichensatz angibt.
AKTUALISIEREN
Kaii wies darauf hin, dass sich meine Antwort zur „Groß-/Kleinschreibung“ auf Werte bezieht, die in Spalten gespeichert sind, und ob Abfragen einen Wert aus einer Spalte zurückgeben, die einen Wert von "New"
enthält wird mit einem Prädikat wie "t.col = 'new'"
zurückgegeben .
Siehe Kaiis Antwort zu Identifikatoren (z. B. Tabellennamen) unter Windows (standardmäßig) anders gehandhabt als unter Linux.