说我有下表:
Create Table Comments ( ID Int Identity(1,1) Not Null Primary Key Clustered, Comment Text Not Null )
由于我很迷信,我怎么能阻止出现在ID列中的13的倍数?
即:跳过13,26,39等
MySQL或MSSQL中的解决方案非常感谢.
每次13n - 1出现在序列中时,创建一个触发器以跳到下一个触发器
BradC,这是给你的.在不了解SQL Server的情况下,我将在Oracle中完成. 这似乎是SQL Server中触发器的一个很好的参考
CREATE OR REPLACE TRIGGER trigname AFTER INSERT ON Comments FOR EACH ROW IF (:new.ID % 13 = 12) THEN -- increase the sequence SELECT comment_ID_sequence.NEXTVAL FROM dual; END IF; END;
如果没有实际测试,这可能不会起作用,但是通过少量的试验和错误,您可以使其正常工作.Oracle根本没有绑定到表的序列对象,如果需要,可以整天颠倒序列,而不必触及表.我不知道SQL Server中是否属实.