首页 > 数据库 >MySQL,多个timestamp字段的建表语句建表失败

MySQL,多个timestamp字段的建表语句建表失败

时间:2024-10-11 15:25:06浏览次数:8  
标签:COMMENT 建表 timestamp time 字段 TIMESTAMP MySQL NULL

我使用的MySQL版本为5.7.42

SELECT VERSION();

 

建表语句示例

CREATE TABLE Orders (
  order_id BIGINT PRIMARY KEY COMMENT '订单唯一标识符,主键',
  a_time TIMESTAMP,
  b_time TIMESTAMP
) COMMENT='订单表,用于存储订单信息';

 

报错为:Invalid default value for 'b_time',意即第二个timestamp字段,b_time字段拥有了非法的默认值。

 

当我尝试以下建表语句

CREATE TABLE Orders (
  order_id BIGINT PRIMARY KEY COMMENT '订单唯一标识符,主键',
  a_time TIMESTAMP
) COMMENT='订单表,用于存储订单信息';

可以建表成功,但是发现a_time虽然没有在建表语句中有任何显式定义其默认值,但是建好的表可以看到该字段有默认值 DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

由此可知,如果建表语句包含多个timestamp字段,且未显式指定其默认值的时候,MySQL会对所有timestamp字段设定默认值DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,为了避免报错,我采取了以下方式成功建表

CREATE TABLE Orders (
  order_id BIGINT PRIMARY KEY COMMENT '订单唯一标识符,主键',
  a_time TIMESTAMP NULL DEFAULT NULL,
  b_time TIMESTAMP NULL DEFAULT NULL,
  c_time TIMESTAMP NULL DEFAULT NULL 
) COMMENT='订单表,用于存储订单信息';

 

标签:COMMENT,建表,timestamp,time,字段,TIMESTAMP,MySQL,NULL
From: https://www.cnblogs.com/ashet/p/18458466

相关文章

  • mysql清除注释,分两步
    逻辑:通过sql语句能查询数据库中的全部备注信息,然后将备注信息拼接成一个修改sql。1.清除字段注解 SELECTconcat('altertable',table_schema,'.',table_name,'modifycolumn',column_name,'',......
  • [自用] 虚拟机windows11-x64,安装MySQL 8.0.32,记录
    前面忘截图了提示要求电脑里安装VS2015/2017/2019,但虚拟机里只有VS2013。网上说可以一起装,但是我虚拟机配置不太行,再说吧,不行用我自己笔记本,虽然也有点菜,但比虚拟机强。虚拟机配置安装之后的配置密码三个旧的特殊符号这少一步,写的是点击execute来应用配置apply......
  • MySQL数据库基础、进阶、运维、读写分离数据库集群看这篇就够了
    MySQL数据库一.MySQL的概述1.1数据库(DB):存放数据的仓库,数据是有组织的进行存储数据库管理系统(DBMS):操纵和管理数据库的大型软件SQL:操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准1.2MySQL数据库关系型数据库(RDBMS)概念:建立在关系模型基础上,由多张相互......
  • 『Mysql进阶』Mysql explain详解(五)
    目录Explain介绍Explain分析示例explain中的列1.id列2.select_type列3.table列4.partitions列5.type列6.possible_keys列7.key列8.key_len列9.ref列10.rows列11.filtered列12.Extra列Explain介绍    EXPLAIN语句提供有关M......
  • MySQL 并行复制演进及 MySQL 8.0 中基于 WriteSet 的优化
    MySQL8.0可以说是MySQL发展历史上里程碑式的一个版本,包括了多个重大更新,目前GenerallyAvailable版本已经已经发布,正式版本即将发布,在此将介绍8.0版本中引入的一个重要的新特性————基于WriteSet的并行复制方案,此方案号称是彻底解决困扰MySQL运维人员多年的复制延迟问题......
  • mysql8: 主从复制,从库跳过错误
    一,主从复制,从库报错,因为主库上执行了一条针对从库上不存在数据库的sql 二,解决:1,执行下面的sql即可,stopreplica;SETGLOBALSQL_SLAVE_SKIP_COUNTER=1;startreplica;需要注意以前的stopslave/startslave不可用了2,也可以用下面的sql:MASTER_HOST:主库ip,MASTER_USER:......
  • MySQL 5.7增强半同步AFTER SYNC&AFTER COMMIT
    今天主要剖析一下MySQL5.7增强半同步的AFTERSYNC和AFTERCOMMIT的区别。    如果我们生产库对数据的一致性要求比较高,那么我们一般会开启了半同步复制,但在MySQL5.5/5.6里,会存在数据不一致的风险。比如有如下场景,客户端提交了一个事务,master把binlog发送给slave,在发送的期间......
  • idea数据库图形化窗口连接数据库报错:Driver class ‘com.mysql.cj.jdbc.Driver‘ not
    报错信息在idea中数据库图形化窗口中,创建下图数据库连接点击测试连接后,发生报错:Driverclass'com.mysql.cj.jdbc.Driver'notfoundNodriverfilesprovided.报错界面:原因出现此错误的原因通常是数据库驱动程序尚未下载或未正确配置到IDEA中。解决方案......
  • MySQL 主从同步的基本原理
    1、简介MySQL主从同步主要通过二进制日志(binlog)来实现。以下是主从同步的工作流程1、主库记录binlog:当主库执行数据更新操作(如INSERT、UPDATE、DELETE)时,会将这些数据变更写入二进制日志(binlog)中。这个日志文件记录了所有影响数据的SQL操作。2、从库请求binlog:从库......
  • MySQL下载、安装与配置
    下载MySQL1、进入MySQL官网2、点击Products,再点击MySQLCommunityServer3、选择MySQL版本,点击GotoDownloadPage4、点击Download下载MySQL安装程序5、点击Nothanks,juststartmydownload,等待下载安装MySQL1、双击运行下载的安装程序2、勾选Custom,点击N......