gpt4 book ai didi

mysql - 如何删除mysql 8.0数据库中的多个事件? 5.7 可以用,8.0 不行?

转载 作者:行者123 更新时间:2023-11-29 16:39:19 25 4
gpt4 key购买 nike

是否有可能使用单个查询删除多个事件?我知道,我们可以使用显示事件获取事件列表,并删除具有该名称的单个事件。

在 mysql 5.7 或最低版本中这是可能的,但我使用的是 mysql 8.0。

最佳答案

我建议使用 MySQL Shell - 作为一次性,您可以使用(使用 Python 模式):

mysqlsh> \py

mysql-py> i_s = session.get_schema("information_schema")

mysql-py> events = i_s.EVENTS \
-> .select("sys.quote_identifier(EVENT_SCHEMA) AS EventSchema", "sys.quote_identifier(EVENT_NAME) AS EventName") \
-> .where("EVENT_SCHEMA = 'db1'").execute().fetch_all();

mysql-py> events
[
[
"`db1`",
"`event1`"
],
[
"`db1`",
"`event2`"
],
[
"`db1`",
"`event``3`"
]
]

mysql-py> sql_fmt = "DROP EVENT {0}.{1}"
mysql-py> for event in events:
-> print(sql_fmt.format(*event))
-> session.sql(sql_fmt.format(*event)).execute()
->
DROP EVENT `db1`.`event1`
DROP EVENT `db1`.`event2`
DROP EVENT `db1`.`event``3`
Query OK, 0 rows affected (0.0038 sec)

有关创建更通用的实用程序的更全面的解释和示例,另请参阅 https://mysql.wisborg.dk/2018/12/02/mysql-8-drop-several-stored-events-procedures-or-functions/

关于mysql - 如何删除mysql 8.0数据库中的多个事件? 5.7 可以用,8.0 不行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53424905/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com