![]() |
1
2
|
![]() |
2
2
我想我应该在delete上创建一个触发器,然后插入旧id在另一张桌子上。 免责声明:我不知道你使用什么数据库引擎,所以我不知道你是否可以使用触发器。 |
![]() |
3
2
数据库不关心这些值是否是连续的,只关心它们是唯一的。渴望拥有你的
处理id值生成的最快和最安全的方法是依赖于提供唯一整数值的本机功能(即:SQLite的autoincrement)。使用触发器只会增加开销,使用MAX(id)+1是非常危险的。。。 理想情况下,使用本机唯一整数生成器(SQLite/MySQL auto\ u increment、Oracle/PostgreSQL sequences、sqlserver IDENTITY)作为主键。如果希望值始终是连续的,请添加一个附加列以存储该连续值,并根据需要对其进行维护。MySQL/SQLite/SQL Server唯一整数生成只允许每列生成一个-序列更灵活。 |
![]() |
4
1
通常,您会让数据库处理分配ID。有没有什么特别的原因让你的id是连续的而不是唯一的?相反,你能给它们加时间戳,并在显示它们时给它们编号吗?或者为顺序id创建一个单独的列,并对它们重新编号? 或者,您不能删除行本身,而是使用列中的标志将它们标记为已删除,然后通过查找编号最低的“已删除”行并重用该id来重新使用已标记行的id。 |
|
Johnny T · 基于当前值的SQL合并表[重复] 7 月前 |
![]() |
John D · 需要为NULL或NOT NULL的WHERE子句 8 月前 |
![]() |
ojek · 如何对SQL结果进行分组和编号? 8 月前 |
![]() |
senek · 如何在PL/SQL中将选择结果(列)放入数组中 8 月前 |
![]() |
Sax · 规范化Google表格(第一步) 8 月前 |
![]() |
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 8 月前 |
![]() |
Andrus · 如何在sql中查找第二个匹配项 8 月前 |