[Mysql_DB]自动写入系统时间——注意低版本数据库操作

news2024/9/23 1:33:13

创建商品表包含字段create_timeupdate_time,并设置默认值为当前时间

实例

使用 CREATE TABLE 语句来创建一个商品表,并为其添加 create_time 和 update_time 字段,同时将这两个字段的默认值设置为当前时间。以下是一个示例:·

CREATE TABLE products (
 id INT PRIMARY KEY,name VARCHAR(255),
 description TEXT,
 price DECIMAL(10, 2),

  create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ); 
    ```

在这个示例中,我们创建了一个名为 products 的商品表,并定义了一些基本的列,如 id、name、description 和
price。然后,我们将 create_time 和 update_time 列添加到商品表中,并将这两个列的默认值都设置为当前时间。

请注意,在执行此操作之前,请确保您已经选择了适当的数据类型和约束条件,以确保表中存储的数据符合您的需求。

低版本处理

plan 1

使用的是低版本的 MySQL 数据库,可能不支持在 TIMESTAMP 类型的列上使用 DEFAULT CURRENT_TIMESTAMP 或 ON UPDATE CURRENT_TIMESTAMP 约束。在这种情况下,您可以使用以下方法来创建一个包含 create_time 和 update_time 列的商品表,并将这两个列的默认值设置为当前时间。

CREATE TABLE products (
    id INT PRIMARY KEY,
    name VARCHAR(255),
    description TEXT,
    price DECIMAL(10, 2),
    create_time TIMESTAMP NOT NULL,
    update_time TIMESTAMP NOT NULL
);
ALTER TABLE products 
MODIFY COLUMN create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
ALTER TABLE products 
MODIFY COLUMN update_time TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP;

在这个示例中,我们首先创建了一个名为 products 的商品表,并定义了基本的列。然后,我们修改了 create_time
列的约束,将其默认值设置为当前时间。对于 update_time 列,由于旧版本的 MySQL 不支持 ON UPDATE
CURRENT_TIMESTAMP 约束,因此我们将其默认值设置为 ‘0000-00-00 00:00:00’,并在需要更新时使用 ON
UPDATE CURRENT_TIMESTAMP 修改其值。

请注意,在执行此操作之前,请确保您已经选择了适当的数据类型和约束条件,以确保表中存储的数据符合您的需求。

plan 2

还不成功

在这里插入图片描述


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

触发器

可以尝试使用触发器来实现 create_time 和 update_time 字段的自动更新。

首先,创建一个商品表:

CREATE TABLE products (
    id INT PRIMARY KEY,
    name VARCHAR(255),
    description TEXT,
    price DECIMAL(10, 2),
    create_time TIMESTAMP NOT NULL,
    update_time TIMESTAMP NOT NULL
);

然后,创建两个触发器,一个用于在插入新行时设置 create_time 列的值,另一个用于在更新行时设置 update_time 列的值。

-- 新增时设置 create_time 的值为当前时间
CREATE TRIGGER set_create_time
BEFORE INSERT ON products
FOR EACH ROW
SET NEW.create_time = NOW();

-- 更新时设置 update_time 的值为当前时间
CREATE TRIGGER set_update_time
BEFORE UPDATE ON products
FOR EACH ROW
SET NEW.update_time = NOW();

这样,当您向商品表中插入新行或更新现有行时,将会自动更新 >create_time 或 update_time 列的值为当前时间。
请注意,在使用触发器时,务必仔细测试并验证其正确性和稳定性,以确保不会影响到数据的一致性和完整性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/593851.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

最新版本 Stable Diffusion 开源 AI 绘画工具之文本转换(Embedding)以及脚本(Script)高级使用篇

✨ 目录 🎈 文本转换 / Textual Inversion🎈 自定义Embedding / Textual Inversion🎈 脚本 / Script🎈 脚本 / Prompt matrix🎈 脚本 / X/Y/Z plot 🎈 文本转换 / Textual Inversion 这个功能其实就是将你…

SuperMap Hi-Fi 3D SDK for Unity制作游戏引擎材质

kele 一、使用背景 在交通,电力,规划等行业中,有的对象常常具有很强的质感,比如金属质感的 钢轨,电力塔;陶瓷材质的绝缘子;玻璃材质的建筑幕墙等,但常规方式的表现效果 往往差强人意…

AUTOSAR APP临摹1~Quick Start 模块

已实现逻辑 demo5 页面跳转 mainwindow.ui相当于simulink界面点击Quick Start进入welcome.ui界面在welcome.ui中大概包含7个页面页面之间通过next、back按钮翻页第0页没有back、最后一页点击next退出welcome.ui,回到mainwindow.ui 条件显示 C/C选项页面中&#xff…

7 步提升私有化部署的极狐GitLab 实例安全等级

目录 指导准则 分层安全,纵深防御 保密 ≠ 安全 减少攻击面 7 步保障私有化部署实例安全 第一步:开启多因素认证 第二步:加强额外的注册检查 第三步:限制群组和项目可见性 第四步:强化 SSH 设置 第五步&…

labelimg闪退解决方法(之前使用过labelimg,但新一次使用,打开文件夹无反应,再次打开闪退的问题)

问题描述: 之前使用过labelimg进行好多次的标注,但新一次运行使用,发现打开目录无反应,再次打开闪退的问题,重启电脑并且从新运行labelimg仍然无效。 解决方法: 关闭labelimg,然后删除文件C…

RK平台使用i2c-tools调试

简介 i2ctool是嵌入式开发过程中调试i2c设备常用的工具包,其中比较常用的有:i2cdetect、i2cdump、i2cset、i2cget。 RK平台的SDK大部分默认都会带这个工具,如果没有编译进去或者找不到的情况下可以自己从网上下载编译进去:https:…

数据结构与算法08:二分查找和哈希算法

目录 【二分查找】 二分查找的特殊情况 【哈希算法】 应用一:安全加密 应用二:唯一标识 应用三:数据校验 应用四:散列函数 应用五:负载均衡 应用六:数据分片 应用七:分布式存储&…

vscode:快捷输入代码片段

背景 每次调试代码输入 console.log() 的时候都会想,有没有什么指令我按下了就能生成这行代码,甚至更多我想自定义的代码,然后就去搜了搜果然有,vscode 提供了自定义代码片段的功能。 步骤 打开 vscode,点击 Prefer…

idea连接HiveServer2

一、 启动hive 启动hive的元数据服务 [aahadoop102 hive]$ bin/hive --service metastore根据你hive的配置方式启动hiveserver2 [aahadoop102 hive]$ bin/hive --service hiveserver2二、配置idea连接Hive服务 打开idea,在项目界面中的右边栏找到Database&#…

学术小白如何写好论文引言

文章目录 1.引言写作逻辑1.1 第一段:从现实出发1.2 第二段:文献综述1.3 第三段:引入研究理论和中介变量1.4 第四段:介绍调节变量的概念1.5 第五段:总结 Hello,宝子们,接下来,我们将持续不断更新一系列围绕论文写作的tips建议&…

vue3学习笔记(附加铺垫知识)

Vue3 1.铺垫知识 1.1ES6 默认导出与默认导入: 按需导出与按需导入: 直接导入并执行模块中的代码: 1.2Promise 回调地狱: 基本概念: 使用promise封装自己的读文件方法: 第一步: 第二步&a…

IP地址和MAC地址

1、MAC地址 MAC(Media Access Control,介质访问控制)地址,或称为物理地址,也叫硬件地址,用来定义网络设备的位置,MAC地址是网卡出厂时设定的,是固定的(但可以通过在设备…

二进制安装K8S

阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 (aliyun.com)https://developer.aliyun.com/mirror/所有节点yum源更换为 ,按照aliyun给的容器里面的kubenetes源和docker源,当然最好把之前的centos源也换成aliyun的 所有节点安装docker yum install -…

git 环境配置 + gitee拉取代码

好嘛 配环境的时候 老是忘记这个命令行 干脆自己写一个记录一下 也不用搜了 1.先从git官网下载git 安装 2.然后从gitee拉取代码的时候提示 这是因为换了新电脑没有加入新的公钥啦 哎 所以老是记不住命令行 first : git config --global user.name “Your Name” …

windows下上架iOS应用到appstore

windows下上架iOS应用到appstore 背景步骤申请苹果开发者账号创建唯一标示符App IDs申请发布证书申请发布描述文件创建App并填写信息选择证书编译打包上传IPA到App Store提交审核 尾巴 背景 现在由于跨平台技术的兴起,不使用原生技术就能开发出Android和iOS应用。A…

redis cluster集群常见错误问题记录

错误信息一: [ERR] Node 127.0.0.1:6379 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0. 这个报错是因为集群配置信息有被修改后导致的,比如某个节点里的redis.conf配置有变…

儿童节小游戏——HTML+JS实现贪吃蛇

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

AI时代,保障安全刻不容缓!

原创 | 文 BFT机器人 01 AI诈骗层出不穷 近年来,深度伪造行为呈现出快速增长的趋势。据统计,2019年至2020年期间,深度伪造网络内容的数量增加了900%,这一令人担忧的趋势预计将在未来数年内持续发展。一些研究人员甚至预测&#xf…

Nova 和 SuperNova:无需通用电路的通用机器执行证明系统

1. 引言 前序博客有: Nova: Recursive Zero-Knowledge Arguments from Folding Schemes学习笔记SuperNova:为多指令虚拟机执行提供递归证明基于Nova/SuperNova的zkVMSangria:PLONK Folding2023年 ZK Hack以及ZK Summit 亮点记Sangria&…

如何把多个pdf合并成一个pdf?常见渠道一览

PDF是一种非常常见的文件格式,它通常用于文档的传输和共享。在日常工作中,我们可能需要将多个PDF文件合并成一个文件以便于管理和浏览。这篇文章将会介绍如何使用在线工具和桌面应用程序来合并PDF文件。 PDF转换器:常用的PDF处理软件&#xf…