mysql报错无效默认值1067_Mysql 报错:#1067

由于 字段UPDATE_TIME 的字段类型是 timestamp ,默认值是:'0000-00-00 00:00:00'

即:`UPDATE_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '更新时间';

在对这个表进行创建的时候,提示:

#1067 - Invalid default value for 'update_time

原因:

timestamp有效时间在:1970-01-01 00:00:00 到 2037-12-31 23:59:59

timestamp类型特点:

1. 占用4个字节

2. 允许为空值,但是不可以自定义值,所以为空值时没有任何意义。

3. TIMESTAMP值不能早于1970或晚于2037。这说明一个日期,例如'1968-01-01',虽然对于DATETIME或DATE值是有效的,但对于TIMESTAMP值却无效,如果分配给这样一个对象将被转换为0。

4.值以UTC格式保存( it stores the number of milliseconds)

5.时区转化 ,存储时对当前的时区进行转换,检索时再转换回当前的时区。

6. 默认值为CURRENT_TIMESTAMP(),其实也就是当前的系统时间。

7. 数据库会自动修改其值,所以在插入记录时不需要指定timestamp字段的名称和timestamp字段的值,你只需要在设计表的时候添加一个timestamp字段即可,插入后该字段的值会自动变为当前系统时间。

8. 默认情况下以后任何时间修改表中的记录时,对应记录的timestamp值会自动被更新为当前的系统时间。

9. 如果需要可以设置timestamp不自动更新。通过设置DEFAULT CURRENT_TIMESTAMP 可以实现。

修改自动更新:

`field_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE

修改不自动更新

`field_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP

解决:

将默认值设置为:1970-01-01 10:00:00之后

参考文章:

https://blog.csdn.net/souldak/article/details/11737799

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`defineProps` 是 Vue 3 中用于声明组件 props(属性)的方法,它是 Composition API 的一部分。当你使用 `defineProps` 来定义组件接受的 props 时,可以设置默认值以便在没有传递相应值的情况下提供默认的行为。 然而,有时你可能会遇到 `defineProps` 解构赋值的默认值无效的情况,这可能有以下几个原因: 1. **类型不匹配**:如果你在 `defineProps` 中为 prop 定义了某种类型(如字符串、数字、对象等),但在实际传参时提供了不符合预期类型的值,那么默认值将不起作用。你需要确保传入的值与 prop 的类型一致。 2. **未正确使用解构**:如果你尝试从默认值对象中解构 prop,但语法有误或没有正确引用默认值,也会导致错误。确保你在调用 `defineProps` 时,解构的 key 与 prop 名相匹配。 3. **全局 props**:全局 props 可能在创建组件实例之前就被初始化了,所以在 `defineProps` 内的默认值可能无法覆盖已存在的全局值。在这种情况下,你可能需要在组件的 `setup()` 函数里设置默认值。 4. **异步默认值**:如果默认值依赖于其他 async 方法或计算属性,需要确保它们在组件实例创建前已经完成。否则,它们可能尚未完成,导致默认值不可用。 5. **错误的 prop 配置**:确保你没有在 prop 的 `required` 或 `emits` 属性中意外地设置了默认值,这些选项会影响 prop 是否允许为空。 相关问题: 1. 解构赋值在 `defineProps` 中的具体语法是什么? 2. 如何正确处理依赖其他值的动态默认值? 3. 在使用 `defineProps` 时,如何避免因全局变量影响默认值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值