0 0

一条SqlServer2000的触发器语句转换为mysql5.0的触发器语句10

以下是一条SqlServer2000的触发器语句,现希望转换成mysql5.0的触发器语句

该语句主要实现在Product表中插入一条记录时,将主键“Product_id”变成“CP001”、“CP002”.....的形式
,只要是能实现这个功能就行了!!!

CREATE  trigger Product_id
on dbo.Product
instead OF insert 
as
begin
declare @preStr varchar(10)
declare @tempID varchar(16)
declare @preTl varchar(2)
select * into #temptb from inserted
select @preTl=max(Product_id ) from inserted 
set @preStr=@preTl
declare @sequNum int
select @tempID=max(Product_id ) from Product where Product_id  like @preStr+'%'
if(@tempID is null)
set @sequNum=1
else
  set @sequNum=cast(subString(@tempID,3,3) as int)+1
set @tempID=right('000'+cast(@sequNum as varchar),3)
set @tempID=@preStr+@tempID
update #temptb set Product_id =@tempID
insert into Product select * from #temptb 
end


静候各位高手回音~!

问题补充:答案如下:

mysql>
mysql> delimiter |
mysql>
mysql> CREATE TRIGGER tr_t_product_bi BEFORE INSERT ON product
    ->   FOR EACH ROW BEGIN
    ->          declare max_id int;
    ->
    ->          select substring(max(product_id),3) into max_id from t_zqaq_520;

    ->          if max_id is null then
    ->                  set max_id=0;
    ->          end if;
    ->          set max_id=max_id+1;
    ->          set new.product_id = concat('CP',right(10000+max_id,3));
    ->   END;
    -> |
Query OK, 0 rows affected (0.05 sec)

mysql>
mysql> delimiter ;
2010年2月11日 18:21

2个答案 按时间排序 按投票排序

0 0

采纳的答案

create trigger update_product_primary_key before insert on Product for each row begin  select count(*) into @count from Product; set new.Product_id =concat('CP',lpad(@count + 1,3,'0')); end;

2010年2月12日 15:04
0 0

create trigger update_product_primary_key before insert on Product for each row begin  select count(*) into @count from Product; set new.Product_id = concat('CP000',@count + 1); end;

2010年2月12日 14:35

相关推荐

    SQL_SERVER应用与开发范例宝典_12357672.part3

    涉及到SQLServer2000、SQLServer2005、Access、Oracle10g、MySql5.0和Postgresql8.2等6种数据库语言,内容包括SQL语言基础、常规数据查询、高级数据过滤、字符串查询、日期函数、日期函数、数据排序、聚集函数与分组...

    SQL_SERVER应用与开发范例宝典_12357672.part2

    涉及到SQLServer2000、SQLServer2005、Access、Oracle10g、MySql5.0和Postgresql8.2等6种数据库语言,内容包括SQL语言基础、常规数据查询、高级数据过滤、字符串查询、日期函数、日期函数、数据排序、聚集函数与分组...

    SQL_SERVER应用与开发范例宝典_12357672.part1

    涉及到SQLServer2000、SQLServer2005、Access、Oracle10g、MySql5.0和Postgresql8.2等6种数据库语言,内容包括SQL语言基础、常规数据查询、高级数据过滤、字符串查询、日期函数、日期函数、数据排序、聚集函数与分组...

    SQL应用开发范例宝典:SQL应用开发范例宝典.iso (源码光盘)

    涉及到SQLServer2000、SQLServer2005、Access、Oracle10g、MySql5.0和Postgresql8.2等6种数据库语言,内容包括SQL语言基础、常规数据查询、高级数据过滤、字符串查询、日期函数、日期函数、数据排序、聚集函数与分组...

    Sqlite数据库支持库2.0#0版(静态版)

    相对于其它非本地数据库,如Oracle、DB2、MS SQL Server、MySQL、PostgreSQL,Sqlite数据库具有小巧、速度快的优势。内部使用的Sqlite版本是3.2.5。本支持库将只为向后兼容而存在,不会再有版本升级,推荐使用...

    Sqlite3数据库支持库2.0#2版(静态版)

    相对于其它非本地数据库,如Oracle、DB2、MS SQL Server、MySQL、PostgreSQL,Sqlite数据库具有小巧、速度快的优势。目前使用的Sqlite版本是3.6.11,只要有可能,将随时跟踪并升级至Sqlite最新版本。数据库内部文本...

    易语言-Sqlite3数据库支持库2.0#2版(静态版)

    相对于其它非本地数据库,如Oracle、DB2、MS SQL Server、MySQL、PostgreSQL,Sqlite数据库具有小巧、速度快的优势。 目前使用的Sqlite版本是3.6.11,只要有可能,将随时跟踪并升级至Sqlite最新版本。 数据库内部...

    PHP程序开发范例宝典III

    实例173 SQL Server数据导入到MySQL数据库 266 实例174 Aceess数据导入到MySQL数据库 268 6.12 分页技术 270 实例175 查询结果的分页显示 271 实例176 单击页码跳转到指定页 272 实例177 输入页码跳转到...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例142 将日期和时间转换为时间戳 170 实例143 获取系统中的特定日期和时间 171 实例144 比较时间的大小 172 实例145 计算考试时间 173 实例146 倒计时 173 实例147 网页闹钟 174 实例148 计算程序运行时间 176 第3...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例142 将日期和时间转换为时间戳 170 实例143 获取系统中的特定日期和时间 171 实例144 比较时间的大小 172 实例145 计算考试时间 173 实例146 倒计时 173 实例147 网页闹钟 174 实例148 计算程序运行时间 176 第3...

    asp.net知识库

    在Framework1.0下同时连接SqlServer和Oracle的一些体会 XML XPath XPath最通俗的教程(ZZ) XPath中相对路径和绝对路径 XPath 简单语法 Asp.Net(C#)利用XPath解析XML文档示例 XSL .Net框架下的XSLT转换技术简介 一个...

Global site tag (gtag.js) - Google Analytics