- 締切済み
ストアドファンクションを差し替えたい
VIEW は、CREATE OR REPLACE VIEW のようにして差し替えることができますが、 ストアドファンクションは、このような差し替えには対応していないのでしょうか? 本番稼動しているデータベースのストアドファンクションを差し替えたい場合は、 BEGIN DROP FUNCTION CREATE FUNCTION COMMIT とすればよろしいでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- chukenkenkou
- ベストアンサー率43% (833/1926)
回答No.1
マニュアルを見れば分かることでは? http://dev.mysql.com/doc/refman/5.1/ja/create-procedure.html >本番稼動しているデータベースのストアドファンクションを差し替えたい場合は、 >BEGIN >DROP FUNCTION >CREATE FUNCTION >COMMIT DDL実行時は内部的にCOMMITが出るため、BEGIN~COMMIT指定は無意味です。 http://dev.mysql.com/doc/refman/5.1/ja/cannot-roll-back.html
お礼
DROP FUNCTION と CREATE FUNCTION の間に別のプレセスが走らないよう、ユーザのアクセスが少ない 早朝に行うことにしました。
補足
ご回答ありがとうございます。 DDLはrollebackできないのですね。 PostgreSQLのように、 CREATE OR REPLACE FUNCTION ができず、 DROP FUNCTION CREATE FUNCTION としなければいけないのであれば、 DROP FUNCTION と CREATE FUNCTION の間に、DROP したストアドファンクションが、別プロセスから 呼び出されると、エラーを起してしまいますので、 差し替えは不可能と考えてよいということでしょうか?