我通过PHP使用varchar随机生成的字符串作为我表中的唯一标识符但是在研究了这个网站后,似乎最好使用自动增量主键字段作为唯一标识符,因为较小的整数速度差加上我不必担心生成随机字符串。
我的朋友却警告过这样做,因为如果索引丢失或者因任何原因重置了增量号,增量号可能会改为0。另外,如果创建数据库的副本,例如。对于测试和使用COPY SELECT,不会创建索引并且自动增量会丢失。
这些问题是否有效?我应该做出改变吗? :)
编辑1
我会使用自动增量字段作为主键并将其用作其他表中的外键,因此我担心的是,如果主表中的自动增量主键因任何原因发生更改,那么其他表中的外键会变得无效
答案 0 :(得分:1)
只需进行更改。
auto_increment
必须是主键。这意味着不允许重复值。通常,您应该使用int unsigned not null auto_increment primary key
作为定义。不需要负数。INSERT
该列的值,只要它不存在就可以了。