CREATE PROCEDURE `sendtalkmessage`(IN `gName` varchar(20),IN `sID` int,IN `mess` varchar(200))
BEGIN
set @sqltext:=concat('insert into talk',gName,'(id,senderid,talkmessage) values (1,',sID,',',mess,')');
prepare sqlstr from @sqltext;
execute sqlstr;
END;解释下 我传进去的是群成员的表名,但是其实我需要用的是群消息表~ 如果insert的时候不添加talkmessage,也就是采用默认值的时候,不提示出错,而且成功传入。现在上面的那种写法,就提示1054 - Unknown column 'fad' in 'field list'
BEGIN
set @sqltext:=concat('insert into talk',gName,'(id,senderid,talkmessage) values (1,',sID,',',mess,')');
prepare sqlstr from @sqltext;
execute sqlstr;
END;解释下 我传进去的是群成员的表名,但是其实我需要用的是群消息表~ 如果insert的时候不添加talkmessage,也就是采用默认值的时候,不提示出错,而且成功传入。现在上面的那种写法,就提示1054 - Unknown column 'fad' in 'field list'
解决方案 »
- 写了触发器之后无法插入数据了
- 我的MYSQL数据库查询很慢,不知道怎么优化,环境是 LIUUX 企业版 5。0 + 没有宋庆龄5。1。23 下面是我是我show的结果,谢谢高手指点
- 通过JSP页面发问MySQL数据库 碰到的问题
- update语句的询问!
- 初玩mysql,碰到个问题,请帮忙
- 高人给该一下这个触发器。我希望同时支持插入和删除
- 关于mysql索引的问题
- 急问,MYSQL的数据库中信息表的记录达到4000条,网页显示就很慢,请问如何调整....
- mysql局域网连接问题
- ADOQUERY通过MYoledb联接MYSQL数据库,更新记录时出错!急......在线等待!!!!
- mysql中如何建立数据库?新手,求指教。
- 关于LINUX MYSQL的入门级问题
结果是什么注意字段类型
BEGIN
set @sqltext:=concat('insert into talk',gName,'(id,senderid,talkmessage) values (1,',sID,',''',mess,''')');
prepare sqlstr from @sqltext;
execute sqlstr;
end
$
先谢谢你回答我,但是我不是很明白,为什么要多加两个单引号?我执行你这个代码之后就提示:
1062 - Duplicate entry '1' for key 'PRIMARY'
+---------------------------------------------------------------------+
| @sqltext |
+---------------------------------------------------------------------+
| insert into talkgroup4(id,senderid,talkmessage) values (1,2,'sefs') |
+---------------------------------------------------------------------+
如果一个' MYSQL根本不知道你的是当前字符串的结束,还是什么。 所以约定连续两个 '' 被解释成一个' 而不是字符串的终结。