2017-06-03 56 views
0

所以我想自動初始化一個日期字段(沒有時間),然後自動初始化一個時間字段(沒有日期)在2個單獨的列(我不希望他們在同一列)...是否有可能在MySQL中自動初始化日期字段?

這可能嗎?

我認爲這可行......但事實並非如此。

CREATE TABLE `account_ip_history` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT, 
    `uid` int(10) unsigned NOT NULL, 
    `ip_address` varchar(39) NOT NULL, 
    `created_date` date NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    `created_time` time NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8; 

回答

1

documentation是相當清楚的:

TIMESTAMPDATETIME列可以自動initializated和 更新爲當前日期和時間(即當前的時間戳)。

如果DATE可以初始化,它將包括在文檔中。

所以,簡單地做:

CREATE TABLE `account_ip_history` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT, 
    `uid` int(10) unsigned NOT NULL, 
    `ip_address` varchar(39) NOT NULL, 
    `created_datetime` datetim NOT NULL DEFAULT CURRENT_TIMESTAMP 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8; 

在查詢表,可以提取datetime組件。

+0

這是行不通的,因爲我想讓日期字段和ip_address字段成爲唯一的索引...然後使用INSERT或UPDATE查詢來每天只添加一次新記錄。但它確實回答了我可以自動分配日期和時間的問題......所以謝謝。 – Ricky