当前位置:  开发笔记 > 后端 > 正文

如何阻止出现在标识列中的多个13

如何解决《如何阻止出现在标识列中的多个13》经验,为你挑选了1个好方法。

说我有下表:

Create Table Comments (
    ID Int Identity(1,1) Not Null Primary Key Clustered,
    Comment Text Not Null
)

由于我很迷信,我怎么能阻止出现在ID列中的13的倍数?
即:跳过13,26,39等

MySQL或MSSQL中的解决方案非常感谢.



1> 小智..:

每次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中是否属实.

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有