我们小组做的项目和订单有关,当用户下过订单后我们想为这个订单产生一个具有实际意义的订单号,比如cdn2009091100001代表2009-09-11日的第一笔订单。
所以我就为订单表写了一个产生订单号的触发器。
drop trigger t_createordercode_cdn_order_bi;
delimiter //
create trigger t_createordercode_cdn_order_bi BEFORE INSERT ON cdn_order
FOR EACH ROW
BEGIN
set @ordernum = 0;
select count(*) into @ordernum from cdn_order where DATE(ordertime) = current_date;
set @ordernumtemp = CONCAT("0000", @ordernum);
set @ordernumtemp = RIGHT(@ordernumtemp, 5);
set @ordercode = CONCAT("cdn", REPLACE(DATE(current_date),'-',''), @ordernumtemp);
set new.ordercode = @ordercode;
END
delimiter ;
t_createordercode_cdn_order_bi 触发器名字:t表示触发器,createordercode表示这个触发器的作用,cdn_order表示表名,bi表示before insert
on cdn_order:对与cdn_order表
for each_row:对每一列都发生作用
begin和end之间:定义一个变量ordernum,把cdn_order表中当天的订单数赋值给ordernum;然后把ordernum格式化为五位的字符串;链接'cdn',当前时间'20090911',ordernumtemp;把生产的字符串赋值给new.ordercode,也就是新插入的列
注意:开始一个同事说在插入一列后再产生订单号,所以我一直朝这个方向努力,但是一直报错,后来查下才知道插入后不能做修改动作。所以就该到插入前产生订单号。
分享到:
相关推荐
触发器创建与管理实验报告 在本实验中,我们将学习触发器的概念、类型、功能和工作原理,并掌握创建、更改、删除触发器的方法。此外,我们还将学习如何利用触发器维护数据完整性。 一、触发器概念和类型 触发器是...
### SQL Server 触发器创建、删除、修改、查看示例 #### 一、概述 在 SQL Server 中,触发器是一种特殊类型的存储过程,它自动执行响应数据更改(如 INSERT、UPDATE 或 DELETE)操作。触发器可以确保数据完整性,...
触发器创建与管理实验报告 触发器是数据库系统中的一种机制,用于自动执行某些操作,以维护数据的完整性和一致性。触发器可以在表格中插入、更新或删除数据时自动执行,实现了数据的实时监控和控制。本实验报告将...
本文实例讲述了mysql触发器之创建多个触发器操作。分享给大家供大家参考,具体如下: 这次记录的内容mysql 版本必须得是5.7.2+的哈,之前的会不好使的。废话不多说,咱们开始正文哈。 在mysql 5.7.2+版本之前,我们...
SQL_Server 触发器创建、删除、修改、查看示例教程 SQL Server 触发器是一种特殊的存储过程,它不能被显式地调用,而是在往表中插入记录、更新记录或者删除记录时被自动地激活。所以触发器可以用来实现对表实施...
总的来说,通过存储过程和触发器创建主键生成器是一种自定义主键生成策略的方法,它允许你在满足特定业务需求的同时保持数据的一致性。然而,这种方法可能会增加数据库的复杂性,因此在实际应用中需要权衡性能和维护...
SQL Server 触发器创建、删除、修改、查看 SQL Server 触发器是一种特殊的存储过程,它不能被显式地调用,而是在往表中插入记录、更新记录或者删除记录时被自动地激活。因此触发器可以用来实现对表实施复杂的完整性...
【Oracle触发器的创建与使用】是数据库管理中不可或缺的一部分,尤其在Oracle数据库系统中,触发器扮演着关键角色。触发器是一种存储过程,当特定的数据库事件发生时(如INSERT、UPDATE或DELETE操作),它会被自动...
本文将深入探讨如何使用SQL语句创建前后触发器,并通过一个具体的示例来阐述其工作原理。 ### 一、触发器概述 触发器是数据库管理系统中的一个重要组成部分,用于响应数据表上的特定事件,如INSERT、UPDATE或...
在DB2中创建触发器是数据库管理中的一个重要环节,它允许在特定的数据库操作(如INSERT、UPDATE或DELETE)执行之前或之后自动运行预定义的SQL语句。本文将详细介绍如何在DB2数据库中创建一个触发器,以及触发器的...
oracle 创建序列 完整步骤
--创建触发器 CREATE OR REPLACE TRIGGER tg_test BEFORE INSERT ON test FOR EACH ROW WHEN (new.nid is null) begin select seq_test.nextval into:new.nid from dual; end; --测试 insert条语句将会自动生成...
针对基于行的复制模式,为防止从库重复执行触发器,一种解决方案是在创建触发器时关闭会话级的binlog记录,只在主库上创建触发器,从库则不创建。可以使用`SET sql_log_bin = 0;`来暂时关闭binlog记录,然后创建...
4. **新建触发器**:右击“触发器”文件夹,选择“新建触发器”选项,启动触发器创建向导。 5. **设置触发器属性**:在向导中,配置触发器的基本属性,包括触发器名称、关联的表名以及触发动作(在这里是INSERT)。...
创建触发器通常使用CREATE TRIGGER语句,例如创建一个简单的INSERT触发器: ```sql CREATE TRIGGER trg_InsertTable ON TableName AFTER INSERT AS BEGIN -- 触发器体,包含你要执行的SQL语句 INSERT INTO Another...
创建学生管理系统的触发器,可用于课程设计,创建sql数据库学生管理系统,任务
这些技巧对于解决触发器创建过程中的常见问题非常有帮助。当然,除了以上提到的方法外,还需要注意触发器名称本身是否符合数据库系统的命名规则,以及触发器所在表的权限问题等。希望这篇文章能够帮助到正在面临相似...
1. 创建AFTER触发器: - 在示例中,`sc_insert`是一个AFTER INSERT触发器,它在数据被插入到`sc`表后执行。这个触发器的作用是验证新插入的学号和课程号是否存在于对应的`student`和`course`表中。如果学号或课程号...
下面将详细讨论如何在SQL Server中创建、修改、查看和管理触发器。 1. 创建触发器: 要在`AddTable`表上创建一个`UPDATE`触发器,你可以使用`CREATE TRIGGER`语句。示例如下: ```sql CREATE TRIGGER mytrigger ...
- **创建触发器**:使用`CREATE TRIGGER`语句定义触发器,指定触发条件和执行的动作。 实验报告中,你需要详细记录每个存储过程的创建SQL语句,以及执行存储过程后的结果截图。此外,实验报告应包括实验设计思路、...