【问题标题】:Triggers in Python/SQL [duplicate]Python / SQL中的触发器[重复]
【发布时间】:2021-07-03 02:19:08
【问题描述】:

我创建了一个 python 代码,一旦数据被填充到 SQL 数据库中,它就应该在某些数据上运行(以生成数据点)。

当数据被添加到可以被python脚本检测到的表中时,是否可以让MySQL发送触发事件,以便python脚本执行操作A?

感谢您对此的任何帮助。提前致谢!

【问题讨论】:

  • 一些更高级的 DBMS 允许用其他语言编写程序代码,而不是它们自己的程序扩展。对于 Python 支持,Postgres 和 SQL Server 可能值得一看。您可能仍然不能只调用您的脚本,而是将其或大部分脚本带到数据库并在那里执行。也许这就是你想要研究的东西。

标签: python sql database triggers


【解决方案1】:

是否可以让 MySQL 在将数据添加到可由 python 脚本检测到的表中时发送触发事件,以便 python 脚本执行操作 A? p>

不,不是直接的。 Triggers call Stored Procedures, etc. 以该数据库引擎的特定语法用 SQL 编写。他们不调用外部程序。我不知道有任何个数据库。

编写非外部程序,MySQL let's you create UDF's in C/C++ 其中can be used in triggers

将 Python 代码用作触发器的唯一方法是在执行插入/更新等的同一代码中。例如:

def insert_into_table(x, y, z):
    cursor.execute('INSERT INTO ...')
    exec_insert_trigger(cursor)

def exec_insert_trigger(cursor_obj):
    """your trigger code here"""
    cursor.execute(...)

或者您可以尝试convert your Python code to C using Cython,然后在 MySQL 触发器中使用它。

【讨论】:

    猜你喜欢
    • 2013-03-14
    • 2015-07-23
    • 2021-10-05
    • 2011-10-29
    • 2016-08-27
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多