Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 删除行后重置sqlite中的rowid_C#_Sql_Sqlite - Fatal编程技术网

C# 删除行后重置sqlite中的rowid

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

当我从我的表中删除一行时,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 FIRST;

。。。但这不起作用。我怎样才能得到连续的数字呢?

这在技术上是可能的,尽管有些不可取-。但听起来您使用autoincrement是错误的,您绝对不应该在每次从表中删除一行时更改每一行的id值。这使得在一个查询中连接其他表变得非常困难,而且在一个大表上速度会非常慢。为什么id是
1,2,4
而不是
1,2,3
很重要?你仍然可以用同样的方法按它们排序。

坏主意,如果你的ID被另一个表用作外键会发生什么?您是否也更新了该表?如果在编号中留下“洞”,会发生什么?您仍然可以对该列进行正确排序。删除
后,rowid将如何排序?id并不重要,但我这样做只是因为我想在DataGridView中获得每行的编号!这正是我找到的解决办法!有更好的方法吗?如果有请告诉我。