我已经在Internet上进行了搜索,并且了解到,更改存储过程正文的唯一方法是删除并重新创建它。该机制似乎没有错,但是如果我有一个客户端应用程序(或成千上万个分布式客户端)不断调用存储过程以更新服务器数据库上的某些数据,则删除该过程将导致数据丢失和/或损坏。
我在考虑是否存在“CREATE PROCEDURE IF EXIST ...”之类的语法或类似功能,因此更新操作将顺利进行。但是我没有发现MySQL中有这样的东西。
那么你们如何看待这个问题?很棒的想法吗?
最佳答案
您无法在MySQL中修改存储过程(尽管可以更改其特征)。从 ALTER PROCEDURE
页面。
尽管执行此更新时可能会丢失数据(尽管它应该是一个相对较小的窗口),但您的数据不太可能损坏。如果您的系统需要防止由于数据库停机而造成的数据丢失,那么我将研究消息队列技术。