2009-04-18 12 views

答えて

37

行末にセミコロン。

INSERT INTO myTable (ID) values (5); 
+1

ステートメントの末尾にある行の最後にある必要はありません。 – soulmerge

+0

ID = 0の挿入文を作成し、そのフィールドを自動インクリメントに変更しました。 ID = 1として追加されました。 – zeetit

8

単純です。

ので

insert into myTable(ID) values (5); 
select * from myTable; 
4

は、セミコロン(;)を使用してみてください。あなたの声明は分かれます。

13

セミコロンがデフォルトの区切り文字です。 ただし、DELIMITERキーワードを使用して任意の値に再定義することができます。 MySQLマニュアルから:

mysql> delimiter // 

mysql> CREATE PROCEDURE simpleproc (OUT param1 INT) 
    -> BEGIN 
    -> SELECT COUNT(*) INTO param1 FROM t; 
    -> END; 
    -> // 
Query OK, 0 rows affected (0.00 sec) 

mysql> delimiter ; 

mysql> CALL simpleproc(@a); 
Query OK, 0 rows affected (0.00 sec) 

これはもちろんストアドプロシージャの定義に限定されません。

5

私は問題は、GOはバッチターミネーターであり、ステートメントターミネーターではないと思います。トランザクションを明示的に設定した後、プロシージャがすでに存在することを知らせることなくこのコードを実行します。トランザクション文がなければ、プロシージャがすでに存在するというエラーが表示されます。

start transaction; プロシージャが存在する場合は、usp_testが存在します。 コミット。 トランザクションを開始します。 プロシージャを作成するusp_test()SELECT * from books; コミット。 usp_test()を呼び出します。

関連する問題