gpt4 book ai didi

mysql - 我们可以使用 MySql 在数据库级别设置触发器吗

转载 作者:太空宇宙 更新时间:2023-11-03 11:28:36 24 4
gpt4 key购买 nike

我正在 Udemy 上学习 Sql 类(class);讲师正在使用 MSSQL,并说我们可以在数据库级别和表级别上使用触发器。现在,对于数据库杠杆,这里是他建议的代码:

Create trigger demo on database
after create_table
as
begin
print "create is not allowed"
roll back transaction
End
Go

因此,我将这段代码复制并粘贴到 MySql 中。但是,出现错误!首先,由于 on (在数据库上),我得到语法错误;如果我删除它,数据库会出现语法错误。我用谷歌搜索看我们是否可以在数据库级别设置触发器,但没有找到任何东西。现在,我的专家问题是,如果这在 MySql 中可行,还是仅适用于 MSSQL?

谢谢,

最佳答案

tl;dr;
如果您正在学习有关 SQL Server 的类(class),则需要进行有关 SQL Server 的培训。

为什么?

因为虽然 SQL 确实有一个标准 (ANSI-SQL),但每个 RDBMS(关系数据库管理系统)都使用不同的 SQL 方言。
SQL Server 使用 T-SQL,而 MySql 使用另一种 sql 方言(显然也称为 MySql)。(Oracle 使用 PL/SQL,其他数据库使用其他方言,你懂的)。

这意味着适用于一个 RDBMS 的语法不能保证适用于另一个 RDBMS。

Create Trigger 语句是高度特定于供应商的,这意味着对于每种 SQL 方言,语法可能会有所不同。

此外,从快速搜索来看,似乎是 MySql has not yet implemented DDL triggers - 如您在链接中所见,状态为未分配。

顺便说一句,并非所有的 SQL 方言实际上都遵循标准,(事实上,我不确定它们中的任何一个都完全遵循标准) - 所以即使您只使用 ANSI-SQL,您也可能不会从不同的数据库供应商那里获得相同的结果。

关于mysql - 我们可以使用 MySql 在数据库级别设置触发器吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51938759/

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