は私が述べることができる:MySQLで 'go'と同等のものは何ですか? TSQLで
insert into myTable (ID) values (5)
GO
select * from myTable
MySQLでは、私は、同じクエリを書き込むことはできません。
MySQLでこのクエリを書く正しい方法は何ですか?
は私が述べることができる:MySQLで 'go'と同等のものは何ですか? TSQLで
insert into myTable (ID) values (5)
GO
select * from myTable
MySQLでは、私は、同じクエリを書き込むことはできません。
MySQLでこのクエリを書く正しい方法は何ですか?
行末にセミコロン。
INSERT INTO myTable (ID) values (5);
単純です。
ので
insert into myTable(ID) values (5);
select * from myTable;
は、セミコロン(;
)を使用してみてください。あなたの声明は分かれます。
セミコロンがデフォルトの区切り文字です。 ただし、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)
これはもちろんストアドプロシージャの定義に限定されません。
私は問題は、GOはバッチターミネーターであり、ステートメントターミネーターではないと思います。トランザクションを明示的に設定した後、プロシージャがすでに存在することを知らせることなくこのコードを実行します。トランザクション文がなければ、プロシージャがすでに存在するというエラーが表示されます。
start transaction; プロシージャが存在する場合は、usp_testが存在します。 コミット。 トランザクションを開始します。 プロシージャを作成するusp_test()SELECT * from books; コミット。 usp_test()を呼び出します。
ステートメントの末尾にある行の最後にある必要はありません。 – soulmerge
ID = 0の挿入文を作成し、そのフィールドを自動インクリメントに変更しました。 ID = 1として追加されました。 – zeetit