在 MySQL 中定义表时,尝试将自增字段与另一个键作为主键。本文解决了如何在保持最佳性能和标识符可访问性的同时实现这一目标的问题。
提供的表示例具有自动递增 id 字段和用于标识查询中的成员的唯一 memberid 字段。问题是如何建立memberid作为主键,同时保留id字段的自动递增功能。
错误“1075 - 不正确的表定义;只能有一个自动列,必须定义它” as a key”表示MySQL要求将自增列定义为键。要解决此问题,必须向 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) --- or: UNIQUE KEY (id) ) ENGINE = MYISAM;
通过在 id 字段上创建索引, MySQL 将能够使用 id 或 memberid 字段有效地定位记录。该解决方案确保使用memberid查询的性能不会受到影响,同时保持自动递增id字段的优点。
因此,可以使用非自动主键配置数据库表- 递增字段,同时仍然保留自动递增列的功能和效率。表设计的这种灵活性可以在查询中实现最佳性能和用户友好的标识符使用。
以上是MySQL 可以修改主键,同时保持自增字段功能吗?的详细内容。更多信息请关注PHP中文网其他相关文章!