mysql 创建存储过程时错误

CREATEPROCEDUREpro(INpnoINT,INpnameVARCHAR(20))BEGININSERTINTOt_kechengVALUES(pno,pna... CREATE PROCEDURE pro(IN pno INT, IN pname VARCHAR(20))BEGIN INSERT INTO t_kecheng VALUES(pno,pname);END; 展开
 我来答
badkano
2017-11-23 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885367
团长

向TA提问 私信TA
展开全部

如果t_kecheng只有2个字段的话,并且数据类型和存储过程输入参数一致的话,存储过程没问题。

mysql的1064错误就是语法不正确,最好给出t_kecheng的表结构,还有,你这个错误是在创建的时候报的还是怎么?

自己简单创建了个表,是没问题的,另外你注意一下:参数名最好不要跟字段名起一样的,有时会出现很多不必要的麻烦,比如如果你t_kecheng表里的字段名也叫pno和pname,那么你参数最好用v_pno或v_pname,这样区分一下。

create table t_kecheng
(pno int,
pname varchar(20))
CREATE PROCEDURE pro
(IN pno INT, 
IN pname VARCHAR(20))
BEGIN 
INSERT INTO t_kecheng VALUES(pno,pname);
END;

随便输入点信息也是可以的。

追问

创建存储过程时,mysql会以;作为结尾,  读取完insert语句就结束了,但这并不是完整的存储过程,

DELIMITER $$   用于修改当前结束符为$$

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式