C# 删除行后重置sqlite中的rowid
当我从我的表中删除一行时,rowID号被删除;这意味着rowid不再进行真正的排序。 在这种情况下,我想重置rowID,这样新的id将被排序并连续。 我尝试使用ALTER TABLE执行此操作:C# 删除行后重置sqlite中的rowid,c#,sql,sqlite,C#,Sql,Sqlite,当我从我的表中删除一行时,rowID号被删除;这意味着rowid不再进行真正的排序。 在这种情况下,我想重置rowID,这样新的id将被排序并连续。 我尝试使用ALTER TABLE执行此操作: ALTER TABLE my_table DROP ID; ALTER TABLE my_table AUTO_INCREMENT = 1; ALTER TABLE my_table ADD ID int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRS
ALTER TABLE my_table DROP ID;
ALTER TABLE my_table AUTO_INCREMENT = 1;
ALTER TABLE my_table ADD ID int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;
。。。但这不起作用。我怎样才能得到连续的数字呢?这在技术上是可能的,尽管有些不可取-。但听起来您使用autoincrement是错误的,您绝对不应该在每次从表中删除一行时更改每一行的id值。这使得在一个查询中连接其他表变得非常困难,而且在一个大表上速度会非常慢。为什么id是
1,2,4
而不是1,2,3
很重要?你仍然可以用同样的方法按它们排序。坏主意,如果你的ID被另一个表用作外键会发生什么?您是否也更新了该表?如果在编号中留下“洞”,会发生什么?您仍然可以对该列进行正确排序。删除后,rowid将如何排序?id并不重要,但我这样做只是因为我想在DataGridView中获得每行的编号!这正是我找到的解决办法!有更好的方法吗?如果有请告诉我。