【发布时间】:2016-03-28 20:23:21
【问题描述】:
我需要在 CURRENT_DATE() 列上创建具有默认值的 mysql 表
我试试
DROP TABLE IF EXISTS `visitors`;
CREATE TABLE `visitors` (
`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
`ip` VARCHAR(32) NOT NULL,
`browser` VARCHAR(500) NOT NULL,
`version` VARCHAR(500) NOT NULL,
`platform` ENUM('w','l','m') NOT NULL,
`date` TIMESTAMP NOT NULL DEFAULT CURRENT_DATE(),
PRIMARY KEY (`id`),
UNIQUE KEY `person` (`ip`,`date`)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
但是写错了
Query: CREATE TABLE `visitors` ( `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, `ip` VARCHAR(32) NOT NULL, `browser` VARCHAR(500) NO...
Error Code: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CURRENT_DATE() NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `person` (`ip`,`date`)
) ENGINE=INNODB AUTO_INCREMENT=1' at line 7
Execution Time : 0 sec
Transfer Time : 0 sec
Total Time : 0.063 sec
有什么问题?
我需要唯一的日期 没有全职信息...
你能帮帮我吗?
【问题讨论】:
-
这是
TIMESTAMP列的默认行为。在这种情况下,您实际上不需要指定DEFAULT。 -
TIMESTAMP 和 DATE 的格式不同,Timestamp 是一个数字,而 date 是一个格式化的日期。任选其一。
-
如果你只需要年月日,为什么不试试
'date' DATE NOT NULL DEFAULT CURRENT_DATE()。
标签: mysql sql datetime timestamp create-table