我已经在互联网上搜索过了,并且明白改变存储过程的唯一方法就是删除并重新创建它。这种机制似乎没有什么问题,但如果我有一个客户端应用程序(或数千个分布式客户端)不断调用存储过程来更新服务器数据库上的某些数据,则删除该过程将导致数据丢失和/或损坏。
我在想,如果有这样的语法,“如果存在创建过程.”或者一些功能类似的东西,这样更新操作就会顺利地执行。然而,我并没有在MySQL中找到这样的东西。
那么你们认为这个问题可以怎样解决呢?很棒的想法?
发布于 2012-04-23 21:59:44
不能在MySQL中修改存储过程(尽管可以更改其特性)。来自ALTER PROCEDURE页面。
此语句可用于更改存储过程的特征。可以在语句中指定多个更改。但是,不能使用此语句更改存储过程的参数或正文;要进行此类更改,必须使用drop过程和CREATE过程删除并重新创建过程。
虽然在执行此更新时有可能丢失数据(尽管它应该是一个相对较小的窗口),但您的数据不太可能被损坏。如果您的系统需要防范数据库停机时的数据丢失,我将查看消息队列技术。
https://stackoverflow.com/questions/10288826
复制相似问题