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);
以上语句报错
:: INSERT INTO Wmy VALUES ('',); Error Code: . 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();
declare score varchar();
set name=NEXTVAL('wmy');
set score= concat('S_',right(concat('',),));
set new.name=name;
set new.score=score;
END;
end
$
INSERT INTO Wmy VALUES ('',);
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);