在插入新元素时如何下推ID

问题描述 投票:0回答:1

假设我有一个与此相关的SQL数据库

ID:1;用户名:AdminID:2;用户名:JohnID:3;用户名:BillID:5;用户名:Ray

而且我想在John之前插入一个ID为2的新元素,如何获得此结果?

ID:1;用户名:AdminID:2;用户名:NewUserID:3;用户名:JohnID:4;用户名:BillID:5;用户名:Ray

服务器按照ID的顺序将John和Bill下推如何使用SQL命令执行此操作?使用可重用函数来执行此操作,因为我的服务器将大量使用此函数

mysql sql phpmyadmin sql-insert
1个回答
0
投票

正如草莓和戈登·利诺夫(Gordon Linoff)所说,这是一个非常糟糕的主意。

您不应该在数据库中重复使用ID。您可能会破坏数据并违反数据库设计的一般原则之一。您甚至可能不想删除旧数据,而是将其标记为未使用或已禁用(或者完全删除对于您的用例是正确的,但请仔细考虑其他表的数据完整性)。

转移ID甚至会带来更多问题,因为您必须在此过程中更新对旧ID的任何引用,否则将使数据混乱。如果更新失败,则存在并发问题和数据损坏的风险。

请不要这样做。

但是,如果您坚持要完成两个步骤。首先,转移ID。您必须先更新Bill的ID,然后再更新John。确保您也更新其他任何表,查询,书签或对该ID号的打印参考。然后,您可以将新用户插入旧的ID 2,就像为INSERT函数显式提供实际ID一样简单(或者,因为您说的是使用phpMyAdmin,所以只需在Insert字段中输入该数字,而不用离开空白)。

但是认真的,不要这样做。

© www.soinside.com 2019 - 2024. All rights reserved.