或者使用触发器创建 插入时规则
DROP trigger stu_trigger -- 删除触发器
create trigger stu_trigger BEFORE insert on triangle
for each row
set NEW.c =TIMESTAMPDIFF(DAY, NEW.b, NEW.a);-- 新建触发器 使用字段时使用 new.
insert into triangle (a,b) values (now(),now())--插入时间
触发器使用测试表
/*
Navicat Premium Data Transfer
Source Server : mysql
Source Server Type : MySQL
Source Server Version : 50649
Source Host : localhost:3306
Source Schema : hot_data
Target Server Type : MySQL
Target Server Version : 50649
File Encoding : 65001
Date: 21/10/2022 10:59:47
*/
SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS =0;--------------------------------Table structure for triangle
------------------------------
DROP TABLE IF EXISTS `triangle`;
CREATE TABLE `triangle` (
`a` datetime(0)DEFAULT NULL,
`b` datetime(0)DEFAULT NULL,
`c` bigint(20)DEFAULT NULL
) ENGINE =InnoDBCHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT =Compact;--------------------------------Triggers structure for table triangle
------------------------------
DROP TRIGGER IF EXISTS `stu_trigger`;
delimiter ;;CREATE DEFINER = `root`@`localhost` TRIGGER `stu_trigger` BEFORE INSERT ON `triangle` FOR EACH ROW set NEW.c =TIMESTAMPDIFF(DAY, NEW.b, NEW.a);;
delimiter ;SET FOREIGN_KEY_CHECKS =1;