Joh*_*Pie 13 mysql linux windows
1. 当我在Windows上运行这个MYSQL语法时,它运行正常.
CREATE TABLE New
(
id bigint NOT NULL AUTO_INCREMENT,
timeUp datetime DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id)
)
Run Code Online (Sandbox Code Playgroud)
但是当我尝试在Linux上运行此代码时,我收到了一个错误
#1067 - Invalid default value for 'time'
Run Code Online (Sandbox Code Playgroud)
2. 在窗口的情况下是不敏感如.新旧两者被认为是相同的.但在linux上,案例很敏感.
配置Linux
MySQL 5.5.33,phpMyAdmin 4.0.5和PHP 5.2.17
Windows的配置
MySql:5.6.11,phpMyAdmin 4.0.4.1 PHP:5.5.0
他们有什么方法可以让它们在两个系统中都很常见.或任何替代方法.谢谢阅读.
spe*_*593 32
在MySQL 5.6中添加了DEFAULT CURRENT_TIMESTAMP
对DATETIME
(数据类型)的支持.
在5.5及更早版本中,这仅适用于TIMESTAMP
(数据类型)列.
可以使用BEFORE INSERT
5.5中的触发器为列分配默认值.
DELIMITER $$
CREATE TRIGGER ...
BEFORE INSERT ON mytable
FOR EACH ROW
BEGIN
IF NEW.mycol IS NULL THEN
SET NEW.mycol = NOW();
END IF;
END$$
Run Code Online (Sandbox Code Playgroud)
区分大小写(针对存储在列中的值的查询)是由于collation
用于列.结尾的排序规则_ci
不区分大小写.例如latin1_swedish_ci
,不区分大小写,但latin1_general_cs
区分大小写.
输出SHOW CREATE TABLE foo
将显示字符类型列的字符集和排序规则.这是按列级别指定的.当新列定义未指定字符集时,表级指定的"default"适用于添加到表中的新列.
UPDATE
Kaii指出我的关于"区分大小写"的答案处理存储在列中的值,以及查询是否将从包含值的列"New"
返回值将返回类似谓词 "t.col = 'new'"
.
请参阅Kaii关于在Windows上以不同方式(默认情况下)处理标识符(例如表名)的答案.
归档时间: |
|
查看次数: |
45393 次 |
最近记录: |