表note:
title content summary
a asfada(很多内容) asf(40个字符+.....)
b gsefs gse
c asfawfa asd这里我想创建一个insert触发器,当插入一行后时就在content里取前40个字符放到summary中
mysql> create trigger newsummary after insert on note for each row update note s
et summary = concat(substring(content,1,40),'......');
Query OK, 0 rows affected (0.01 sec)
结果是ok的然后插入一行
mysql> insert into note(title,content) values('hello2','sdsdsadawdawd');结果报错:
ERROR 1442 (HY000): Can't update table 'note' in stored function/trigger because
it is already used by statement which invoked this stored function/trigger.MySQL
title content summary
a asfada(很多内容) asf(40个字符+.....)
b gsefs gse
c asfawfa asd这里我想创建一个insert触发器,当插入一行后时就在content里取前40个字符放到summary中
mysql> create trigger newsummary after insert on note for each row update note s
et summary = concat(substring(content,1,40),'......');
Query OK, 0 rows affected (0.01 sec)
结果是ok的然后插入一行
mysql> insert into note(title,content) values('hello2','sdsdsadawdawd');结果报错:
ERROR 1442 (HY000): Can't update table 'note' in stored function/trigger because
it is already used by statement which invoked this stored function/trigger.MySQL
create trigger newsummary before insert on note for each row
begin
set new.summary = concat(substring(new.content,1,40),'......');
end //
我是一名初学者,现在再看Mysql必知必会,但发现里面的内容比较全,但是在实际用的时候,很多Mysql语句都是要组合起来用的,有没有好的书籍推荐能够解决这方面的困扰
如果还想同时把选出来的 40个字符 在 去掉空行呢?
想和这条语句一起执行
summary = replace(summary,'\n\n','\n') where summary like '%\n\n%';
create trigger newsummary before insert on note for each row
begin
set new.summary = replace(concat(substring(new.content,1,40),'......'),'\n\n','\n') ;
end //