php - MySQL 中的唯一 ID?

标签 php mysql uuid

因此,我正在为我工​​作的公司编写一个相当小的脚本,以帮助我们更好地管理服务器。不过,我不经常使用 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/

相关文章:

php - 如何在mysql中输入包含多个项目的客户订单

mysql - 使用多个 JOINS 将 MYSQL 查询转换为 HQL

python - 为什么在 GCP 上从 python 生成重复的 UUID?

javascript - 来自 GraphQL 网站的 Apollo-server 教程产生错误

php - 为什么不能将所有字符从全角字符更改为半角字符?

php - 如何在正则表达式中验证 BIGINT

php - MySQL:mysqldump 生成数据库备份

php - 需要 PHP 和 MySQL 方面的帮助...

php - 为什么我不禁用 PDO::MYSQL_ATTR_DIRECT_QUERY?

iphone - iOS - UUID 生成抛出一个奇怪的异常