从 mysql 中的触发器或存储过程调用 REST API?

Ash*_*ish 5 mysql rest json stored-procedures database-trigger

我想POST在 Windows 上的 mysql 服务器中的存储过程或触发器的方法中调用 rest api 。

如何仅使用 MySQL 执行此操作?

小智 9

您可以使用 mysql-udf-http,然后创建一个触发器,如下所示:

delimiter $$
CREATE TRIGGER upd_check BEFORE UPDATE ON account 
FOR EACH ROW 
  BEGIN 
    IF NEW.amount > 0 THEN 
      set @json = select json_object(account_id,amount) 
      select http_post('http://restservice.example.com/account/post',@json); 
    END IF; 
  END;$$ 

delimiter;
Run Code Online (Sandbox Code Playgroud)


Dre*_*rew -7

基本上你不能。如果可以(通过使用 UDF 库),您就不应该这样做。

Mysql 是一个高性能数据库引擎,您应该尊重它的核心能力。其他利益相关者正在等待您的查询或交易结束,他们会受到影响,而您的却不会。它不是一个带有异步调用回调的网络服务器。触发器和存储过程需要进入和退出,因为它们经常在事务设置中使用。

  • 这当然是可以做到的,并且取决于开发人员是否“正确”、“按照书本”等做事。不要用想象中的限制来限制自己 - 我们有足够的真实限制。 (4认同)