Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT

简介: Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT

有时我们执行数据库的sql语句时,可能会遇到下面的错误

错误代码: 1293

Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause


错误代码: 1067

Invalid default value for 'createtime’


1.我们想要执行的sql语句:


/*==============================================================*/
/* Table: user                                                  */
/*==============================================================*/
CREATE TABLE USER
(
   user_id              INT NOT NULL AUTO_INCREMENT COMMENT '医生id',
   username             VARCHAR(100) COMMENT '用户名',
   PASSWORD             VARCHAR(100) COMMENT '密码',
   realname             VARCHAR(100) COMMENT '真实姓名',
   telephone            VARCHAR(20) COMMENT '电话号码',
   birthday             DATETIME COMMENT '生日',
   dept_id              INT COMMENT 'id',
   user_type            INT COMMENT '医生类型',
   active               INT DEFAULT 1 COMMENT '是否有效,1 有效,0 失效',
   createtime           DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
   PRIMARY KEY (user_id)
);


2.但是由于mysql的版本不同,可能会出现下面的错误:

错误代码: 1293
Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

或者是:

错误代码: 1067
Invalid default value for 'createtime'

通俗的理解就是由于mysql的版本问题我们的那个createtime字段自动生成时间报错了。


3.解决办法:


把createtime字段的类型改为TIMESTAMP,但是其他时间(如birthday,并不需要自动生成的时间)还继续用DATETIME。


修改后可以正确执行的sql语句:

/*==============================================================*/
/* Table: user                                                  */
/*==============================================================*/
CREATE TABLE USER
(
   user_id              INT NOT NULL AUTO_INCREMENT COMMENT '医生id',
   username             VARCHAR(100) COMMENT '用户名',
   PASSWORD             VARCHAR(100) COMMENT '密码',
   realname             VARCHAR(100) COMMENT '真实姓名',
   telephone            VARCHAR(20) COMMENT '电话号码',
   birthday             DATETIME COMMENT '生日',
   dept_id              INT COMMENT 'id',
   user_type            INT COMMENT '医生类型',
   active               INT DEFAULT 1 COMMENT '是否有效,1 有效,0 失效',
   createtime           TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
   PRIMARY KEY (user_id)
);

这样就可以正常执行了,OK问题解决。


相关文章
HTTP协议的状态码有哪些常见的类型,分别代表什么意思?
HTTP状态码三数字分五类:1xx(信息),2xx(成功),3xx(重定向),4xx(客户端错误),5xx(服务器错误)。例如,200表示请求成功,301表示永久重定向,404表示未找到,500表示服务器内部错误。这些代码帮助诊断网络问题。
780 2
|
运维 监控 Devops
|
8月前
|
消息中间件 人工智能 分布式计算
多智能体系统设计:协作、竞争与涌现行为
作为一名长期专注于分布式系统和人工智能领域的技术博主,我深深被多智能体系统(Multi-Agent Systems, MAS)的复杂性和优雅性所吸引。在过去几年的研究和实践中,我见证了多智能体系统从理论概念逐步走向实际应用的转变过程。多智能体系统不仅仅是简单的分布式计算模型,它更像是一个微观社会,其中每个智能体都具有自主性、反应性和社会性。这些智能体通过复杂的交互模式,展现出了令人惊叹的集体智能现象。从最初的简单协作模式,到复杂的竞争博弈,再到最终涌现出的群体智慧,多智能体系统为我们提供了一个全新的视角来理解和设计复杂系统。在本文中,我将从架构设计原则出发,深入探讨通信协议的设计要点,分析冲突
1087 0
多智能体系统设计:协作、竞争与涌现行为
|
8月前
|
机器学习/深度学习 边缘计算 算法
金属材料表面六种缺陷类型数据集 | 适用于YOLO等视觉检测模型(1800张图片已划分、已标注)
本数据集包含1800张金属表面缺陷图像,涵盖裂纹、夹杂、凹坑等6类缺陷,已标注并按train/val/test划分,支持YOLO、Faster R-CNN等模型训练,适用于工业质检与智能检测研究。
金属材料表面六种缺陷类型数据集 | 适用于YOLO等视觉检测模型(1800张图片已划分、已标注)
|
Kubernetes Cloud Native API
掌握Dapr:构建可移植的微服务应用
【10月更文挑战第8天】Dapr(Distributed Application Runtime)是一个开放、可移植的运行时环境,旨在简化微服务应用的构建。它通过提供一套API处理服务发现、状态管理、发布/订阅等常见问题,帮助开发者专注于业务逻辑。本文介绍Dapr的基本概念、核心组件、优势及实施步骤,适用于希望构建弹性、可扩展微服务应用的开发者。
|
存储 移动开发 前端开发
html5有哪些新特性?
【10月更文挑战第19天】
|
存储 人工智能 自然语言处理
AI 工程学习 - 三张图说明白什么是 RAG
RAG(检索增强生成)是一种结合信息检索和生成模型的自然语言处理框架,通过引入外部知识库(如文档库、数据库等),增强生成模型的回答准确性与相关性。其核心在于避免模型仅依赖训练数据产生不准确或“幻觉”内容,而是通过实时检索外部资料,确保回答更精准、丰富且上下文相关。RAG的实现包括建立索引(清洗、分割、嵌入存储)和检索生成(计算相似度、选择最优片段、整合提示词模板提交给大模型)。
2637 0
|
关系型数据库 MySQL
1293 - Incorrect table definition; there can be only oneTIMESTAMP column with CURRENT_TIMESTAMP
一个表中出现多个timestamp并设置其中一个为current_timestamp的时候经常会遇到 1293 - Incorrect table definition; there can be only oneTIME...
2801 154
|
数据可视化 关系型数据库 数据库
告别破解版烦恼!Navicat Premium Lite免费版它来了
作为一名后端开发者,在开发过程中使用可视化工具查看数据库中的数据是我们的基本操作。Navicat作为一款广受欢迎的数据库连接工具,深受我们喜爱和挑战。我们喜爱它强大的功能和直观的操作习惯,但又对它的收费模式感到不满。个人使用可以通过破解解决,然而在公司环境下,由于侵权问题,我们通常被禁止使用,这令我们感到很不便。然而,最近Navicat推出了一款免费的产品——Navicat Premium Lite。
6347 1
告别破解版烦恼!Navicat Premium Lite免费版它来了
|
机器学习/深度学习 人工智能 自然语言处理