更改主键为Memberid时保持自增
在MySQL中,创建带有自增列的表还需要它被指定为主键。但是,如果主键需要是不同的字段,用户可能会遇到错误“#1075 - 不正确的表定义。”
要解决此问题,可以维护自动递增列(id),同时将memberid作为主键。这可以通过在 id 列上创建索引(键)来实现:
CREATE TABLE members ( `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, `memberid` VARCHAR(30) NOT NULL, `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `firstname` VARCHAR(50) NULL, `lastname` VARCHAR(50) NULL, PRIMARY KEY (`memberid`), KEY (`id`) );
此解决方案可确保表的性能针对顺序插入和更新保持优化,因为 id 列保持自动递增。同时,查询可以通过memberid有效地识别用户。
通过在id列上添加索引,MySQL可以快速定位使用该字段的行,即使它不是主键。但是,需要注意的是,与直接使用 id 列作为主键相比,性能可能会稍微慢一些。
这种方法允许数据库设计灵活,同时保持良好的性能,牺牲最小的磁盘空间来提高可用性和查询优化。
以上是MySQL更改主键时如何保持自增?的详细内容。更多信息请关注PHP中文网其他相关文章!