si desea establecer el tiempo predeterminado, debe cambiar a timestamp
en su tipo de datos,
el datetime
va a mostrar la entrada del usuario de la tabla...
http://dev.mysql.com/doc/refman/5.0/en/timestamp-initialization.html
http://dev.mysql.com/doc/refman/5.6/en/timestamp-initialization.html
Como el DEFAULT CURRENT_TIMESTAMP
la pregunta ya está respondida, solo responderé a la discrepancia de mayúsculas y minúsculas en los nombres de las tablas entre Windows y Linux.
En Windows, los sistemas de archivos no distinguen entre mayúsculas y minúsculas de forma predeterminada.
Pero en Linux y otros *NIX como sistemas operativos, distinguen entre mayúsculas y minúsculas de forma predeterminada.
La razón por la que no coincide el comportamiento aquí es el sistema de archivos, ya que cada tabla se crea como un archivo separado y el sistema de archivos maneja la distinción entre mayúsculas y minúsculas por usted.
MySQL tiene un parámetro para anular este comportamiento:
Por ejemplo, en Unix, puede tener dos tablas diferentes llamadas my_table
y MY_TABLE
, pero en Windows estos dos nombres se consideran idénticos. Para evitar problemas de transferencia de datos derivados del uso de mayúsculas y minúsculas en los nombres de las bases de datos o las tablas, tiene dos opciones:
-
Usa
lower_case_table_names=1
en todos los sistemas. La principal desventaja de esto es que cuando usasSHOW TABLES
oSHOW DATABASES
, no ve los nombres en su letra original. -
Usa
lower_case_table_names=0
en Unix ylower_case_table_names=2
en Windows Esto conserva el uso de mayúsculas y minúsculas en los nombres de las bases de datos y las tablas. La desventaja de esto es que debe asegurarse de que sus declaraciones siempre se refieran a los nombres de sus bases de datos y tablas con las mayúsculas y minúsculas correctas en Windows. Si transfiere sus extractos a Unix, donde el uso de mayúsculas y minúsculas es significativo, no funcionarán si el uso de mayúsculas y minúsculas es incorrecto.
Excepción: Si está utilizando tablas InnoDB y está tratando de evitar estos problemas de transferencia de datos, debe configurarlower_case_table_names=1
en todas las plataformas para obligar a que los nombres se conviertan a minúsculas.
[...]
Para evitar problemas causados por tales diferencias,es mejor adoptar una convención coherente, como siempre crear y hacer referencia a bases de datos y tablas usando nombres en minúsculas . Se recomienda esta convención para lograr la máxima portabilidad y facilidad de uso.
Este es un extracto del manual de MySQL sobre la distinción entre mayúsculas y minúsculas de los identificadores
El DEFAULT CURRENT_TIMESTAMP
soporte para un DATETIME
(tipo de datos) se agregó en MySQL 5.6.
En 5.5 y versiones anteriores, esto se aplicaba solo a TIMESTAMP
(tipo de datos) columnas.
Es posible usar un BEFORE INSERT
desencadenar en 5.5 para asignar un valor predeterminado a una columna.
DELIMITER $$
CREATE TRIGGER ...
BEFORE INSERT ON mytable
FOR EACH ROW
BEGIN
IF NEW.mycol IS NULL THEN
SET NEW.mycol = NOW();
END IF;
END$$
La distinción entre mayúsculas y minúsculas (de consultas contra valores almacenados en columnas) se debe a collation
utilizado para la columna. Intercalaciones que terminan en _ci
son insensibles a mayúsculas y minúsculas. Por ejemplo latin1_swedish_ci
no distingue entre mayúsculas y minúsculas, pero latin1_general_cs
distingue entre mayúsculas y minúsculas.
La salida de SHOW CREATE TABLE foo
mostrará el juego de caracteres y la intercalación para las columnas de tipo de carácter. Esto se especifica en un nivel por columna. El "predeterminado" especificado en el nivel de la tabla se aplica a las nuevas columnas agregadas a la tabla cuando la definición de la nueva columna no especifica un conjunto de caracteres.
ACTUALIZAR
Kaii señaló que mi respuesta con respecto a la "distinción de mayúsculas y minúsculas" se ocupa de los valores almacenados dentro de las columnas, y si las consultas devolverán un valor de una columna que contiene un valor de "New"
se devolverá con un predicado como "t.col = 'new'"
.
Ver la respuesta de Kaii sobre identificadores (por ejemplo, los nombres de las tablas) se manejan de manera diferente (por defecto) en Windows que en Linux.