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);