因此,我正在为我工作的公司编写一个相当小的脚本,以帮助我们更好地管理服务器。不过,我不经常使用 MySQL,所以我对什么是最好的路径有点困惑。
我正在做这样的事情......
$sql = "CREATE TABLE IF NOT EXISTS Servers
(
MachineID int NOT NULL AUTO_INCREMENT,
PRIMARY KEY(MachineID),
FirstName varchar(32),
LastName varchar(32),
Datacenter TINYINT(1),
OperatingSystem TINYINT(1),
HostType TINYINT(1)
)";
$result = mysql_query($sql,$conn);
check ($result);
$sql = "CREATE TABLE IF NOT EXISTS Datacenter
(
DatacenterID int NOT NULL AUTO_INCREMENT,
PRIMARY KEY(DatacenterID),
Name varchar(32),
Location varchar(32)
)";
$result = mysql_query($sql,$conn);
check ($result);
基本上在服务器表中,我将在另一个表中存储条目的索引。我担心的是,如果我们删除其中一个条目,它会搞乱自动递增索引,并可能导致大量不正确的数据。
为了更好地解释,假设我添加的第一台服务器的 Datacenter 值为 3(即 DatacenterID),我们稍后会删除 id 1 (DatacenterID) 的数据中心。
有什么好的方法吗?
最佳答案
自动增量仅对向表中插入新行有效。因此,您向数据库中插入了 3 条记录,它们的 id 分别为 1、2 和 3。稍后您删除了 id 1,但 id 2 和 3 处的记录未更改。这并没有说明任何可能尝试引用数据库 id 1 记录的服务器记录,尽管该记录现在已丢失。
关于php - MySQL 中的唯一 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5566736/