当前位置: 首页 > 面试题库 >

MySQL:#1075-错误的表格定义;自动增量与另一个键?

白星渊
2023-03-14
问题内容

这是MySQL 5.3.X + db中的表:

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 ,
  UNIQUE (memberid),
  PRIMARY KEY (id) 
) ENGINE = MYISAM;

id 列从未在查询中使用,只是为了视觉方便(因此很容易看到表的增长方式)。 Memberid 是一个实际键,是唯一的,并且在查询中使用
memberid 来标识任何成员(WHERE memberid =’abcde’)。

我的问题是:如何保留auto_increment,但将memberid作为主键?那可能吗?当我尝试使用 PRIMARY KEY(memberid)
创建此表时,出现错误:

1075-错误的表格定义;只能有一个自动列,并且必须将其定义为键

如果性能非常重要(尽管磁盘空间不是很重要),那么最佳选择是什么(希望有一种方法可以保留id列,从而使性能良好,并且查询可以通过memberid而不是id来标识任何用户)?


问题答案:

可以 拥有不是的自动递增列,PRIMARY KEY只要列上有索引(键)即可:

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;


 类似资料:
  • 问题内容: 我正在尝试在mysql数据库中创建一列,该列自动递增1但从0-Z开始然后滚动。 例如000、001、002,…,009、00A,00B,…,00Z,010,…,0ZZ,…,100。 我想让数据库通过自动递增字段创建列。 我的想法是: 为从0到36的每个字符创建一列,然后将行N(其中N是最低有效数字)自动递增1。然后在每列上添加触发器,以在第N列达到36时向N-1列添加1 。 创建一个包

  • 问题内容: 我知道这是行不通的,以各种形式尝试过并且一直失败。实现以下结果的最简单方法是什么? 这对于自动化项目非常有用。谢谢! 问题答案: 使用准备好的语句:

  • 问题内容: 我正在使用php和mysql。我有一个表,其中id列设置为自动递增作为主键。我正在尝试添加另一个名为sort_order的列。插入行后,sort_order列应自动递增。然后,用户将能够更改sort_order值。但是mysql不允许多于一列的自动递增? 自动递增sort_order值的最佳方法是什么? 受欢迎的要求,更多的解释。 在管理区域中,用户将具有类别列表。用户可以使用java

  • MySQL中有两个表,如下所示: 请注意,category_id是类别表中category_key的FOREIGN KEY 我想在第三个表(名为“catalog”)中插入目录项,这样每个目录ID都将从其类别和子类别ID生成,每个类别子类别ID的串联编号都会自动递增。 例如: 假设“categories”表中有一行的categories_键为“ABC”,而“sub_categories”表中也有一行

  • 我创建一个自定义注册表单在wordpress买我有以下错误,我似乎找不到什么导致他们。 注意:未定义的变量:new_user在第219行的 /Applications/MAMP/htdocs/****/wp-内容/插件/护理匹配/carematch.php 注意:未定义的变量:错误 /Applications/MAMP/htdocs/****/wp-内容/插件/护理匹配/carematch.php

  • 本文向大家介绍AngularJS中的Directive自定义一个表格,包括了AngularJS中的Directive自定义一个表格的使用技巧和注意事项,需要的朋友参考一下 先给大家说下表格的需求: ● 表格结构 ● 点击某个th,就对该列进行排序 ● 可以给表头取别名 ● 可以设置某个列是否显示 ● 表格下方有一行显示总行数 我们希望表格按如下方式展示: 以上,datasource的数据源来自co