1.当我在Windows上运行这个MYSQL语法时,它运行正常。
CREATE TABLE New ( id bigint NOT NULL AUTO_INCREMENT, timeUp datetime DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id) )
但是当我尝试在Linux上运行这个代码时,我得到了一个错误
#1067 - Invalid default value for 'time'
在Windows上,这种情况并不敏感,例如。 新的和新的都被认为是相同的。 但在Linux上的情况是敏感的。
Linux的configuration
MySQL 5.5.33,phpMyAdmin 4.0.5和PHP 5.2.17
Windows的configuration
MySql:5.6.11,phpMyAdmin 4.0.4.1 PHP:5.5.0
他们有什么办法使这两个系统的共同点。 或者有其他的方法。 谢谢阅读。
在MySQL 5.6中添加了对DATETIME
(数据类型)的DEFAULT CURRENT_TIMESTAMP
支持。
在5.5及更早版本中,这仅适用于TIMESTAMP
(数据类型)列。
在5.5中可以使用BEFORE INSERT
触发器来为列指定一个默认值。
DELIMITER $$ CREATE TRIGGER ... BEFORE INSERT ON mytable FOR EACH ROW BEGIN IF NEW.mycol IS NULL THEN SET NEW.mycol = NOW(); END IF; END$$
区分大小写(针对存储在列中的值的查询)是由于列使用的 collation
。以 _ci
结尾的整理不区分大小写。例如, latin1_swedish_ci
不区分大小写,但latin1_general_cs
区分大小写。
SHOW CREATE TABLE foo
的输出将显示字符类型列的字符集和归类。 这是按列级别指定的。 在新的列定义没有指定字符集时,表级中指定的“默认”适用于添加到表中的新列。
UPDATE
Kaii指出,关于“区分大小写”的回答是处理列中存储的值,并且查询是否将返回包含值"New"
的列的值将返回一个谓词,如"t.col = 'new'"
。
有关标识符 (例如,表名)在Windows上比在Linux上处理方式不同(默认情况下),请参阅Kaii的答案。
由于DEFAULT CURRENT_TIMESTAMP
问题已经得到解答,我只会回应windows和linux之间的表名中的区分大小写不匹配。
在Windows上,文件系统默认情况下不区分大小写。
但在Linux和其他* NIX操作系统上,默认情况下是区分大小写的。
之所以会出现行为不匹配的原因是文件系统,因为每个表都是作为单独的文件创建的,文件系统会为您处理区分大小写。
MySQL有一个参数来覆盖这个行为:
例如,在Unix上,可以有两个名为
my_table
和MY_TABLE
表,但在Windows上,这两个名称被认为是相同的。 为避免由于数据库或表名称的信箱而引起的数据传输问题,您有两种选择:
在所有系统上使用
lower_case_table_names=1
。 这样做的主要缺点是当你使用SHOW TABLES
或SHOW DATABASES
,你看不到原来的lettercase中的名字。在Unix上使用
lower_case_table_names=0
,在Windows上使用lower_case_table_names=0
lower_case_table_names=2
。 这保留了数据库和表名的字母大小写。 这样做的缺点是您必须确保您的语句始终在Windows上使用正确的lettercase引用数据库和表名。 如果你把你的语句转移到Unix中,那么lettercase是有意义的,如果这个casecase是不正确的,他们就不会工作。例外情况:如果您使用的是InnoDB表,并且您试图避免这些数据传输问题,则应在所有平台上设置
lower_case_table_names=1
以强制名称转换为小写。[…]
为了避免这种差异造成的问题, 最好采用一致的约定,例如始终使用小写名称创建和引用数据库和表 。 建议使用此惯例以实现最大的便携性和易用性。
这是关于标识符区分大小写的MySQL手册的摘录
如果你想默认的时间必须改变你的数据类型的timestamp
,
datetime
时间将显示表的用户输入…
http://dev.mysql.com/doc/refman/5.0/en/timestamp-initialization.html
http://dev.mysql.com/doc/refman/5.6/en/timestamp-initialization.html