在特定值上创建更新表的触发器

时间:2017-06-28 17:03:53

标签: sql triggers

我目前正在使用数据库类,我们需要在数据库中包含一些触发器。 我的小组正在建立一个图书馆数据库,并且当属性DaysOut的值为“90”​​时需要触发。另一个名为费用的属性将增加到“10”。这可能是触发器吗? 我写了一些语法并将其发送给我的教授,但给了我最少的建议。这是语法:

CREATE TRIGGER Late_Fee 
AFTER UPDATE OF DaysOut ON BOOKS 
WHEN DaysOut = 90 UPDATE CUSTOMERS 
SET Fees = Fees + 10 
WHERE Cust_ID = Cust_ID;

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

正如我在评论中所说,有用的答案取决于使用的DBMS。由于这似乎是针对大学课程,您可能没有使用DBMS,答案可能是基于ANSI-SQL标准而不是实际的SQL实现。这就是为什么我讨厌大多数大学数据库课程,因为教授通常会写一本近20年前编写的书,而不是实践经验(我经常发现很多教授这类课程的教授都没有真正的实际数据库经验)。我问你的教授DBMS答案的目的是什么。如果教授不知道,说要从你的书中删除例子,或者说要使用ANSI-SQL标准,那么这是一个假设的问题,在我看来没有技术上合适的答案(因为即使那里是一个正确的答案,你必须改变它以适应你正在使用的DBMS)。以下是一些如何在真实DBMS系统中实现此类触发器的示例。

我的SQL

repeat

<强>资源:

https://docs.microsoft.com/en-us/sql/t-sql/statements/create-trigger-transact-sql

https://www.sitepoint.com/how-to-create-mysql-triggers/