kub*_*uba 64 mysql timestamp mysql-error-1293
我想定义将有2个TIMESTAMP字段的表,如下所示:
CREATE TABLE `msgs` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`msg` VARCHAR(256),
`ts_create` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`ts_update` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)
Run Code Online (Sandbox Code Playgroud)
如何做到这一点避免错误:
ERROR 1293 (HY000): Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
Run Code Online (Sandbox Code Playgroud)
关键是保持期望的行为ts_create,并ts_update在表模式.
Cle*_*t P 56
这是mySQL的一个限制,你不能有两个TIMESTAMP列,其默认值引用CURRENT_TIMESTAMP.唯一的方法是对ts_create使用DATETIME类型,遗憾的是它不能具有默认值NOW().你可以使用自己的触发器来实现这一目标.
我认为可以通过使用以下技术
`ts_create` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`ts_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
153325 次 |
| 最近记录: |