MYSQL新建存储过程出错!
执行这段代码CREATEPROCEDUREpro()BEGINSELECTCOUNT(*)FROMtest;END;老报这个问题#1064-Youhaveanerrori...
执行这段代码
CREATE PROCEDURE pro()
BEGIN
SELECT COUNT(*) FROM test;
END;
老报这个问题
#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 '' at line 3
请问是什么原因?请大侠们把我这段代码改到能用 展开
CREATE PROCEDURE pro()
BEGIN
SELECT COUNT(*) FROM test;
END;
老报这个问题
#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 '' at line 3
请问是什么原因?请大侠们把我这段代码改到能用 展开
2个回答
展开全部
CREATE PROCEDURE pro()
BEGIN
SELECT COUNT(*) FROM think_book;
END;
我在Navicat for mysql 上执行没有报错。是不是你没有test这张表。
BEGIN
SELECT COUNT(*) FROM think_book;
END;
我在Navicat for mysql 上执行没有报错。是不是你没有test这张表。
追问
没有那张表也不是报那个错误啊
追答
你是不是在命令行下执行上面代码的。
如果是这样的话肯定报错啊!
CREATE PROCEDURE pro()
BEGIN
SELECT COUNT(*) FROM test;
END;
这个存储过程,在命令行直接创建的话,在第三排你输入分号后就报错了。
因为MYSQL以为这个语句结束了,那对于MYSQL而言肯定是个错误语句。
如何解决这个问题呢?
只要在这个语句前后加分隔符就可以了。
DELIMITER //
CREATE PROCEDURE pro()
BEGIN
SELECT COUNT(*) FROM test;
END;
//
在//……//之间的当成一个语句执行所以MYSQL接到的才是这个存储过程完整的创建语句。
注意://与语句之间要空一行。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询