您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

SQLite使用周期重新编号ID

SQLite使用周期重新编号ID

代码不是标准的sql

sqlite没有许多编程结构,因为它被设计为嵌入式数据库,在该数据库中使用宿主语言编写逻辑更为自然。

如果要在sql中执行此操作,请尝试以下操作: 首先,创建一个临时表,以便我们有一个可用于计数的自动增量列:

CREATE TEMPORARY TABLE new_ids(i INTEGER PRIMARY KEY, old_id INTEGER);

插入一个虚拟记录,以确保下一个新记录从处开始100,然后插入Categories要更改的表的所有ID :

INSERT INTO new_ids VALUES(99, NULL);
INSERT INTO new_ids SELECT NULL, id FROM "Categories" WHERE "Name" = 'White';
DELETE FROM new_ids WHERE i = 99;

然后,我们可以更改原始表中的所有这些ID:

UPDATE "Categories"
  SET id = (SELECT i FROM new_ids WHERE old_id = "Categories".id)
  WHERE id IN (SELECT old_id FROM new_ids);
DROP TABLE new_ids;
SQLServer 2022/1/1 18:33:41 有494人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶