MYSQL数据库ID

时间:2014-09-25 18:38:49

标签: mysql database

当有人在我的网站上注册时,他们会在3个不同的表中获得变量。

但是,由于原因不明,某些表的ID比其他表更高。

所以有人会注册并获得这些ID

表1 - ID 12 表2 - ID 15 表3 - ID 13

我利用这些ID对于各种表连接是相同的,每个注册的用户我都必须手动进入并更改ID!

我不知道该怎么做,这真的很乏味。我应该擦除数据库并重新启动吗?

2 个答案:

答案 0 :(得分:3)

听起来你的所有三个表都设置为自动递增,并且你试图用它们的主键暗示它们之间的外键关系。这可以在短期内工作,但是如果手动插入记录,或者如果你有一个不是所有三个表都插入了数据的场景,那么它会抛弃它。您可以将自动增量值重置为您想要的任何值,但这只是一个临时修复。

如果是这种情况,您应该确定哪些是与其他人相关的“主”表。那么问问自己,是否真的有必要将这些数据分成三个表,而实际上它们都是1:1?最后,如果有必要这样做,那么您应该考虑的最佳实践是在子表中声明单独的字段,并将它们定义为与主表具有显式的外键关系。

我刚刚注册了所以我无法发表评论,但是如果你能展示“创建表”的SQL语句会有所帮助。

答案 1 :(得分:-1)

如果你知道自己在做什么,并且真的希望以这种方式工作。然后,您可以将自动增量值设置为特定数字,例如ALTER TABLE Persons AUTO_INCREMENT=100

如果你真的不知道自己在做什么。您最好阅读有关使用数据库,主键,关系表等的更多信息。