这实际上是一个问题,我注意到托管服务器上mysql数据库中的模式
所以我有一个“用户”表,
用户具有唯一的ID“用户ID”,该ID会根据每条新记录自动生成ID。
所以我注意到似乎是异常的事情
我从用户ID为“ 4”的行中删除一条记录
如果记录进入数据库表的第二天,将重新生成用户ID“ 4”。
我认为这不正常
有没有人经历过
我的表格创建语句
CREATE TABLE `users` (
`User_id` int(255) NOT NULL,
`Username` text NOT NULL,
`Password` text NOT NULL,
`Access` text NOT NULL,
`Email` text NOT NULL,
`business` text
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ALTER TABLE `users`
ADD PRIMARY KEY (`User_id`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `users`
--
ALTER TABLE `users`
MODIFY `User_id` int(255) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
我希望ID删除后就不会重复
谢谢
答案 0 :(得分:1)
您误解了PRIMARY KEY AUTO_INCREMENT
的含义:
因此:如果删除ID并手动将其重新插入,则数据库不会阻止您,但是如果您让数据库创建ID,则它将永远不会重复。
编辑
有充分的理由允许手动插入曾经删除的ID:如果没有它,则对表进行部分还原将是很困难的,甚至是不可能的。