zoukankan      html  css  js  c++  java
  • MySqL触发器以及常用转换函数注意事项

    1,触发器(http://www.cnblogs.com/zzwlovegfj/archive/2012/07/04/2576989.html)

          1.MYSQL中触发器中不能对本表进行 insert ,update ,delete 操作,以免递归循环触发

          2. 对于update 只能用set 进行操作,insert与delete只能借助第二张表才能实现需要的目的

          3.借助连接查询语句试试看,实现思路,先将要符合删除条件的记录查询出来,作为一个新的集合(相当于一张中间表),在通过集合与当前表的 inner                                    join  语句 进行删除。

        http://blog.sina.com.cn/s/blog_6810dfc20101j2pj.html

      例如

    DROP trigger IF EXISTS tg_wmy; 
    delimiter $//定义结束执行SQL语句的标识符以不至于一次换行执行一次
    create trigger tg_wmy
    after insert on Wmy
    for each row 
    begin
    BEGIN
    declare name varchar(10);
    declare score  varchar(50);
    set name=NEXTVAL('wmy');
    set score= concat('S_',right(concat('00000000',1234),8));//职工号标识(0000011)
    Insert into Wmy values(new.name,score);
    END;
    end
    $//结束执行SQL
    INSERT INTO Wmy VALUES ('1',100);
    

    以上语句报错

    10:21:26    INSERT INTO Wmy VALUES ('1',100);    Error Code: 1442. Can't update table 'Wmy' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.    0.219 sec

    解决

    DROP trigger IF EXISTS tg_wmy; 
    delimiter $
    create trigger tg_wmy
    before insert on Wmy
    for each row 
    begin
    BEGIN
    declare name varchar(10);
    declare score  varchar(50);
    set name=NEXTVAL('wmy');
    set score= concat('S_',right(concat('00000000',1234),8));
    set new.name=name;
    set new.score=score;
    END;
    end
    $
    INSERT INTO Wmy VALUES ('',100);

    mysql类型转换函数convert与cast的用法

    MySQL 的CAST()和CONVERT()函数可用来获取一个类型的值,并产生另一个类型的值。

    两者具体的语法如下:
    CAST(value as type);
    CONVERT(value, type);
    就是CAST(xxx AS 类型), CONVERT(xxx,类型)。

    可以转换的类型是有限制的。这个类型可以是以下值其中的一个:

    二进制,同带binary前缀的效果 : BINARY    
    字符型,可带参数 : CHAR()     
    日期 : DATE     
    时间: TIME     
    日期时间型 : DATETIME     
    浮点数 : DECIMAL      
    整数 : SIGNED     
    无符号整数 : UNSIGNED 

    例子:CONVERT('23',SIGNED),CAST('125e342.83' AS signed) 

    MYSQL 获取当前日期及日期格式

    获取系统日期:NOW()

    格式化日期:DATE_FORMAT(date, format)注: date:时间字段 ,format:日期格式

    http://blog.csdn.net/kangbrother/article/details/7030304

    MySQL 字符串连接函数Concat

    concat(str1,str2);

    http://zac110.iteye.com/blog/1582382

  • 相关阅读:
    JavaScript的学习----2.操作BOM对象
    Maven的配置和Eclipse中导入SpringBoot项目一些注意点
    JavaScript学习----1.基础篇
    线程池的学习
    CSS的初步学习
    类的加载细节探索
    反射与注解
    数据结构第二章
    数据结构第一章
    用结构和STL常用算法实现对学生成绩的排序和查找(vector)
  • 原文地址:https://www.cnblogs.com/wangboke/p/5659472.html
Copyright © 2011-2022 走看看