首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

mysql中存储过程报错有关问题

2012-03-19 
mysql中存储过程报错问题我的mysql版本是5.5的,然后写了个测试存储过程,运行时报错,麻烦看看那里错了,这个

mysql中存储过程报错问题
我的mysql版本是5.5的,然后写了个测试存储过程,运行时报错,麻烦看看那里错了,这个代码:

SQL code
DROP PROCEDURE IF EXISTS `sptest`;CREATE PROCEDURE `sptest`()BEGINDECLARE @id int(11)NOT NULL;SELECT @id INTO ContractID FROM contractinfo WHERE SymbolNum='al1105';SELECT * FROM contractinfo WHERE ContractID=@id;END;

报这个错误:
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@id int(11)' at line 4
请高手看看,到底错在哪里。

[解决办法]
声明变量的时候错了!
[解决办法]
CREATE PROCEDURE `sptest`()
BEGIN
DECLARE id1 int(11)NOT NULL;
SELECT ContractID into id1 FROM contractinfo WHERE SymbolNum='al1105';
SELECT * FROM contractinfo WHERE ContractID=@id1;
END;
[解决办法]
SQL code
CREATE PROCEDURE `sptest`()BEGINDECLARE id1 int(11);  --not null不能定义SELECT ContractID into id1 FROM contractinfo WHERE SymbolNum='al1105';SELECT * FROM contractinfo WHERE ContractID=id1;END;
[解决办法]
CREATE PROCEDURE `sptest`()
BEGIN
DECLARE id1 int(11)NOT NULL;
SELECT ContractID into id1 FROM contractinfo WHERE SymbolNum='al1105';
SELECT * FROM contractinfo WHERE ContractID=id1;
END;

热点排行