私は、アプリケーションの起動時に適用する新しい移行があるかどうかを確認するプロジェクトをGOで行っています(ライブラリhttps://github.com/mattes/migrateを使用しています)。移行からストアドプロシージャを作成する
ここで問題となるのは、この移行の1つで作成するストアドプロシージャがあることです(これは後で呼び出されるため、移行で作成する必要があります。そうしないと、テストスイートはもちろん失敗します)。
の例では、このいずれかになります。
DELIMITER @@
CREATE PROCEDURE get_value(my_id BIGINT(20), OUT out_value DOUBLE)
BEGIN
SELECT CASE
WHEN o.financial_status = "test" THEN 0
ELSE 1
END
INTO out_value
FROM `order` o
LEFT JOIN `my_table_2` io ON io.field_2 = o.id
LEFT JOIN `my_table_3` ip ON io.field_3 = ip.id
WHERE o.id = my_id;
END @@
DELIMITER ;
行くためのSQLドライバは(我々は、MySQL 5.6を使用している)マルチステートメントをサポートしていないので、私の知る限り読んで、これができない場合があります。
他の方法がありますか?ありがとう!
あなたはmymyslを見ましたか? http://stackoverflow.com/questions/28548559/does-a-go-mysql-driver-exist-that-supports-multiple-statements-within-a-single-s –