错误1067(42000):“updated”的默认值无效
我想这是因为current_timestamp
的精度只有秒。
如何将当前时间设置为具有小数部分的时间戳
的默认值?
根据timestamp
和datetime
类型列的文档:
如果timestamp
或datetime
列定义在任何位置包含显式的小数秒精度值,则必须在整个列定义中使用相同的值。
允许这样做:
CREATE TABLE t1 (
ts TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)
);
其他例子:
mysql> create table tbl_so_q23671222_1( ts timestamp(3) default now() );
ERROR 1067 (42000): Invalid default value for 'ts'
mysql> create table tbl_so_q23671222_1( ts timestamp(3) default now(3) );
Query OK, 0 rows affected (0.59 sec)
mysql> create table tbl_so_q23671222_2( ts timestamp(3) default current_timestamp );
ERROR 1067 (42000): Invalid default value for 'ts'
mysql> create table tbl_so_q23671222_2( ts timestamp(3) default current_timestamp(3) );
Query OK, 0 rows affected (0.38 sec)
mysql> desc tbl_so_q23671222_1;
+-------+--------------+------+-----+----------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+----------------------+-------+
| ts | timestamp(3) | NO | | CURRENT_TIMESTAMP(3) | |
+-------+--------------+------+-----+----------------------+-------+
1 row in set (0.01 sec)
mysql> desc tbl_so_q23671222_2;
+-------+--------------+------+-----+----------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+----------------------+-------+
| ts | timestamp(3) | NO | | CURRENT_TIMESTAMP(3) | |
+-------+--------------+------+-----+----------------------+-------+
1 row in set (0.01 sec)
请参阅:
初始化和更新时间戳和日期时间
我正在使用Laravel迁移创建表。它在处创建了处更新了使用
问题内容: 我有以下sql create语句 给出以下错误 这是什么错误? 问题答案: 那是由于服务器SQL模式-NO_ZERO_DATE。 根据参考:-在严格模式下,不允许将其作为有效日期。您仍然可以使用 IGNORE 选项插入零日期。如果不在严格模式下,则接受日期,但会生成警告。
我的mysql版本是5.5.41-0Ubuntu0.14.04.1(Ubuntu)
主要内容:在创建表时设置默认值约束,在修改表时添加默认值约束,删除默认值约束默认值(Default)的完整称呼是“默认值约束(Default Constraint)”,用来指定某列的默认值。在表中插入一条新记录时,如果没有为某个字段赋值,系统就会自动为这个字段插入默认值。 例如,员工信息表中,部门位置在北京的较多,那么部门位置就可以默认为“北京”,系统就会自动为这个字段赋值为“北京”。 默认值约束通常用在已经设置了非空约束的列,这样能够防止数据表在录入数据时出现错误。 在
我想在elasticsearch中组织我的数据并使用kibana可视化它。我使用elasticsearch 1.4.4和Kibana3。 我所有数据的elasticsearch是,我有两种文档类型和。我在开始时运行下面的脚本,并期望格式的时间戳字段,值为文档的插入时间。我的理解是每个文档都有一个时间戳字段。我在kibana中看不到这个字段。Kibana说但是我似乎无法将其设置为仪表板的时间戳。我在
问题内容: 我的数据库是MySql 5.6。 我想使用CURRENT_TIMESTAMP作为类型为TIMESTAMP(3)的属性的默认值。 但是我得到了错误: 错误1067(42000):“更新”的默认值无效 我认为是因为仅以秒为单位。 如何将小数部分的当前时间设置为默认值? 问题答案: 根据文档并输入列: 如果或列定义在任何地方都包含显式的小数秒精度值,则在整个列定义中必须使用相同的值。 这是允