【发布时间】:2011-10-29 10:09:36
【问题描述】:
我有一个包含多条记录的表:
- 用户名(例如“TOM”)
- Question_ID(例如“q002”)
- 答案(例如“D”)
我想创建一个触发器,这样没有人可以两次提交同一问题的答案。 它必须是一个触发器而已。
CREATE TRIGGER trigger_Check_Duplicates
ON submit_Answer
FOR INSERT
AS
IF SELECT???
PRINT 'duplicate'
raiserror('cant submit answer to same question twice')
ROLLBACK
End
【问题讨论】:
-
您可能想解释为什么它只能是一个触发器。通常,这是由约束处理的,因此不可能被允许,而不是依靠触发器之类的机制来为您完成额外的工作。
-
@Sumo 我知道有限制并使用阻止这种情况的键,但正如问题所问的那样,我想使用触发器来做到这一点。这不是一个真正的数据库
-
刚刚注意到这也是MySql而不是SQL Server。
-
以防万一,您可以在 User_Name AND Question_ID 上创建
UNIQUE索引,那么您的插入将失败,除非您指定IGNORE或ON DUPLICATE子句。 -
但是为什么你没有完成你已经开始的那个触发器?
标签: sql sql-server tsql triggers