|
1
2
SQLite支持两种方法:
定义
在表上创建一个触发器,终止任何
如果使用自动分配的主键,如上图所示,则可能需要运行触发器
您可能还需要在
注: 我没有测试上面的代码。 |
|
|
2
1
您可以使用CHECK约束来执行此操作。 但是,
(来自 here ) 所以除非SQLite 3=SQLite 3.3否则这可能行不通 |
|
|
3
1
jmisso,我不建议重用已删除的主键。如果没有首先删除可能包含该键的所有其他表(始终强制在数据库中设置外键关系以防止此类孤立数据的一个原因),则可以这样创建数据完整性问题。除非您确定没有可能附加到新记录的孤立数据,否则不要执行此操作。 为什么要将主键限制为1000个可能的值?当您需要表中的1500条记录时会发生什么情况?我觉得这不是一件很好的事情。 |
|
|
4
0
实际上,使用CHECK约束时,它不允许超出该范围的数字,但这并不像我所希望的那样工作(很抱歉,我没有提到这一点),因为我希望它在尝试第1000个键后使用第一个可用的主键(由删除的行释放)。 谢谢你的回答,我会调查触发选项。 |
|
|
5
0
赫格姆,你可能是对的。我试着去执行它,因为那个密钥是一个更大的7位数代码的一部分,我不能让它变大。可能这张桌子几年内甚至达不到500行,因为它是为一家小商店准备的。希望在那之前,他们能买得起rfid。 |
|
|
6
0
为什么是整数?你说它在000到999之间,所以听起来你并不是在对整数做数学运算。 如果不是你在做算术,你应该使用字符。 |
|
|
7
0
在表的开头预先填充1000行怎么样。使用某种1/0列(如“可用”或类似列)切换可用行。然后不允许插入或删除,只允许更新。在这种情况下,你的应用程序只需编码更新。 |
|
|
Johnny T · 基于当前值的SQL合并表[重复] 1 年前 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
ojek · 如何对SQL结果进行分组和编号? 1 年前 |
|
|
senek · 如何在PL/SQL中将选择结果(列)放入数组中 1 年前 |
|
|
Sax · 规范化Google表格(第一步) 1 年前 |
|
|
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 1 年前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 1 年前 |