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

news/2024/10/18 1:35:44/

创建商品表包含字段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.ppmy.cn/news/123303.html

相关文章

苹果iPhone14如何批量删除联系人?iPhone 14批量删除联系人方法

苹果iPhone 14如何批量删除联系人?手动一个个删实在太麻烦了! 苹果iPhone 14手机的通讯录本身不支持批量删除联系人,但是如果通讯录在iCloud中开启过备份,就可以对联系人进行批量操作。 需要注意的是,iPhone 14手机端…

webpack-SplitChunksPlugin学习

前言 Webpack 默认会将尽可能多的模块代码打包在一起,优点是能减少最终页面的 HTTP 请求数,但缺点也很明显: 1 页面初始代码包过大,影响首屏渲染性能;2 无法有效应用浏览器缓存,特别对于 NPM 包这类变动较…

vr报价单_七里河区vr全景展示报价表

七里河区vr全景展示报价表 VR现实创新实验室综合解决方案是一款为学校、校外教育基地设计开发的软硬件一体化产品,通过现实技术,满足青少年自主探索、安全实验的vr现实实验创新教学的需求。 该方案依托国际先进的桌面级便携式一体化现实设备,…

中国移动苏州研发中心暑期实习随行录-1

2019年7月8号 今天是实习报到的第一天,早上从宿舍乘坐班车去公司,宿舍是苏小研租的高博软件学院的一个学生宿舍。宿舍是六人间,但是只住四人,宿舍有空调,热水器,我们都是住在一楼,所以相对来说有…

服务器柜机位置摆放电子图,柜式空调摆放位置有什么要注意的吗

答:根据你的情况,可以放在门后面,斜着往里面(45度角),因为门口是太阳西下,里面应该不是很热,斜着往里面不仅里面保持凉快,门口处也可以当冷气帘,挡住从外面进来的热气。我的回答希望…

空调大1.5匹、正1.5匹、小1.5匹的区别

空调调大1.5匹、正1.5匹、小1.5匹有什么区别,很明显的就能看出来,其在功率大小上是有关系的。小1.5匹的空调制冷量是3200W左右,也叫1.25匹空调,适合16平米左右的房间使用;把制冷量为3500W的空调叫做正1.5匹&#xff0c…

健康消费升级提速,“智慧”+“健康”TCL空调能否构筑市场新格局?

文|曾响铃 来源|科技向令说(xiangling0815) 五月初夏,终于迎来了空调市场的第一波热潮,苏宁数据显示,五一期间线上空调销售量同比增长99.7%,几近翻倍。 然而,今年的情况又与往年不太一样&…

保障移动安全的十大诀窍

随着移动设备的普及度不断攀升,新型商务及娱乐应用也开始在市场上大规模出现。如今人们已经可以在移动设备上玩游戏、购物、支付账单并通过社交网络分享观点。 “对于消费者而言,网络犯罪似乎还是一种仅仅威胁大型企业、无暇侵犯个人权益的隐患。然而在线…