2017-08-03 40 views
1

我不明白我的查询在Mysql中有什么问题。 我会在这里写我的查询。在我的Mysql创建过程中出现错误的原因是什么

CREATE PROCEDURE PR_INSERT_DATA (
       IN prCode INT, 
       IN prName VARCHAR(250), 
       IN prAuthor varchar(250), 
       IN prCategory varchar(250), 
       IN prMaterial varchar(250), 
       IN prPrice varchar(7), 
       IN prDescription varchar(1000), 
       IN prComment varchar(500)) 
BEGIN 
    INSERT INTO `product`(`CODE`,`NAME`,`AUTHOR`, `CATEGORY`, `MATERIAL`, `PRICE`, `DESCRIPTION`, `COMMENT`) 
    VALUES (`prCode` 
      ,`prName` 
      ,`prAuthor` 
      ,`prCategory` 
      ,`prMaterial` 
      ,`prPrice` 
      ,`prDescription` 
      ,`prComment`) 

这gaves我这个错误:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 19

Here is表的结构。

+0

错误的原因就在那里; **“您的SQL语法错误;请查看与您的MariaDB服务器版本相对应的手册,以获取在第19行”**“附近使用的正确语法。 – Brxxn

+0

好的,但我不明白问题在哪里。我想我正在使用好的查询。 –

+0

这是你的整个过程吗?它突然结束。 – aynber

回答

2

您需要将标准分隔符从';'更改到另一个。原因是因为我们想要将存储过程作为一个整体传递给服务器,而不是让MySQL一次解释每条语句。

DELIMITER // 
CREATE PROCEDURE PR_INSERT_DATA (
       IN prCode INT, 
       IN prName VARCHAR(250), 
       IN prAuthor varchar(250), 
       IN prCategory varchar(250), 
       IN prMaterial varchar(250), 
       IN prPrice varchar(7), 
       IN prDescription varchar(1000), 
       IN prComment varchar(500)) 
BEGIN 

    INSERT INTO `product`(`CODE`,`NAME`,`AUTHOR`, `CATEGORY`, `MATERIAL`, `PRICE`, `DESCRIPTION`, `COMMENT`) 
    VALUES (`prCode` ,`prName`,`prAuthor`,`prCategory` ,`prMaterial`,`prPrice`,`prDescription`,`prComment`); 

END// 
+0

非常感谢。它的工作,但我不知道为什么:D –

+0

更新了原因。 –

相关问题