如何为MySQL Datetime列设置默认值?

weixin_38058113 2019-09-12 02:13:57
如何为MySQL Datetime列设置默认值? 在SQL Server中,它是getdate().什么是MySQL的等价物?如果这是一个因素,我正在使用MySQL 5.x.
...全文
179 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38060280 2019-09-12
  • 打赏
  • 举报
回复
重要编辑:现在可以通过自MySQL 5.6.5以来的DATETIME字段来实现这一点,看看下面的other post …… 以前的版本不能用DATETIME做到这一点…… 但你可以用TIMESTAMP做到这一点: mysql> create table test (str varchar(32), ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP); Query OK, 0 rows affected (0.00 sec) mysql> desc test; +-------+-------------+------+-----+-------------------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+-------------------+-------+ | str | varchar(32) | YES | | NULL | | | ts | timestamp | NO | | CURRENT_TIMESTAMP | | +-------+-------------+------+-----+-------------------+-------+ 2 rows in set (0.00 sec) mysql> insert into test (str) values ("demo"); Query OK, 1 row affected (0.00 sec) mysql> select * from test; +------+---------------------+ | str | ts | +------+---------------------+ | demo | 2008-10-03 22:59:52 | +------+---------------------+ 1 row in set (0.00 sec) mysql> ** CAVEAT:如果您默认定义CURRENT_TIMESTAMP为ON的列,则需要始终为此列指定值,否则该值将在更新时自动重置为“now()”.这意味着如果您不希望更改该值,则您的UPDATE语句必须包含“[您的列名] = [您的列名]”(或其他一些值),否则该值将变为“now()”.很奇怪,但也是如此.我希望这有帮助.我使用的是5.5.56-MariaDB **

473

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧