重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

VIEW は、CREATE OR REPLACE VIEW のようにして差し替えることができますが、
ストアドファンクションは、このような差し替えには対応していないのでしょうか?

本番稼動しているデータベースのストアドファンクションを差し替えたい場合は、
BEGIN
DROP FUNCTION
CREATE FUNCTION
COMMIT
とすればよろしいでしょうか?

A 回答 (1件)

マニュアルを見れば分かることでは?



http://dev.mysql.com/doc/refman/5.1/ja/create-pr …

>本番稼動しているデータベースのストアドファンクションを差し替えたい場合は、
>BEGIN
>DROP FUNCTION
>CREATE FUNCTION
>COMMIT

DDL実行時は内部的にCOMMITが出るため、BEGIN~COMMIT指定は無意味です。

http://dev.mysql.com/doc/refman/5.1/ja/cannot-ro …

この回答への補足

ご回答ありがとうございます。

DDLはrollebackできないのですね。

PostgreSQLのように、
CREATE OR REPLACE FUNCTION
ができず、
DROP FUNCTION
CREATE FUNCTION
としなければいけないのであれば、
DROP FUNCTION

CREATE FUNCTION
の間に、DROP したストアドファンクションが、別プロセスから
呼び出されると、エラーを起してしまいますので、
差し替えは不可能と考えてよいということでしょうか?

補足日時:2008/05/25 11:35
    • good
    • 0
この回答へのお礼

DROP FUNCTION

CREATE FUNCTION
の間に別のプレセスが走らないよう、ユーザのアクセスが少ない
早朝に行うことにしました。

お礼日時:2008/08/09 23:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す