我已经看到了一些关于此的答案。但那些无法解决我的问题
DROP PROCEDURE IF EXISTS test_while_loop;
Delimeter //
CREATE PROCEDURE test_while_loop()
BEGIN
SELECT COUNT(*) INTO count_ FROM job_applicant;
END
//
Delimeter;
但显示意外附近';'
答案 0 :(得分:0)
在您的程序中,您忘了DECLARE count_ variable
。在您的问题将解决的程序中添加吹线
DECLARE count_ INT DEFAULT 0;
试试这个。
DROP PROCEDURE IF EXISTS test_while_loop;
DELIMITER //
CREATE PROCEDURE test_while_loop()
BEGIN
DECLARE count_ INT DEFAULT 0;
SELECT COUNT(*) INTO count_ FROM job_applicant;
END //
DELIMITER ;
正确的关键字是DELIMITER
,而不是Delimeter
答案 1 :(得分:-1)
问题在于你的最后一行。
Delimiter;
应该是
Delimiter ;
(请注意空格。另请注意拼写:它是DELIMITER
,而不是DELIMETER
。)
一旦修复,你还需要声明变量count_
,正如Vipin Jain指出的那样。完整的代码应该是
DROP PROCEDURE IF EXISTS test_while_loop;
DELIMITER //
CREATE PROCEDURE test_while_loop()
BEGIN
DECLARE count_ INT DEFAULT 0;
SELECT COUNT(*)
INTO count_
FROM job_applicant;
END //
DELIMITER ;
(像我一样打破 SELECT
完全取决于个人偏好。)
答案 2 :(得分:-1)
你需要下定决心。您已指定DELIMITER //
,但仍在使用;
。当然它会产生语法错误。这是不对的。使用//
(或根本不更改分隔符)。如果分隔符已更改为//
,则无法在过程正文中使用;
。
注意最后一行Delimeter;