我有一个mysql表和数据条目:
CREATE TABLE `invoices`.`invoices` (
`InvoiceID` bigint(20) unsigned NOT NULL auto_increment,
`UserID` int(10) unsigned NOT NULL,
`Value` decimal(10,3) NOT NULL,
`Description` varchar(4048) NOT NULL,
`DateTime` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`InvoiceID`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin5;
我想删除"on update CURRENT_TIMESTAMP“条件。怎样才能修改这个表呢?
发布于 2010-09-06 21:28:46
ALTER TABLE `invoices`.`invoices`
CHANGE `DateTime` `DateTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
发布于 2017-01-23 18:38:59
对于您的用例,我认为使用DATETIME
会更好,例如:
ALTER TABLE `my_table`
CHANGE `my_col` `my_col` DATETIME NOT NULL DEFAULT NOW();
这将在插入时默认为NOW()
,但在更新时保持不受影响。
查看这个问题可以很好地解释其中的差异:Should I use field 'datetime' or 'timestamp'?
发布于 2017-08-23 06:58:43
ALTER TABLE `invoices` CHANGE `DateTime` `DateTime` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00'
或
ALTER TABLE `invoices` CHANGE `DateTime` `DateTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
https://stackoverflow.com/questions/3651798
复制相似问题