2017-08-03 7 views
1

Mysqlで私のクエリの問題は理解できません。 私はここに私の質問を書くでしょう。それは私にこのエラーをgaves私の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`) 

#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構文に間違いがあります。正しい構文がMarineDBサーバーのバージョンに対応するマニュアルをチェックして、 '' at line 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

理由を更新しました。 –

関連する問題