2010-10-12 43 views

回答

4

你必须改变你的PK列,以便它没有AUTO_INCREMENT修改了。

+0

@Anzeo:不,他没有。他只是删除主键索引。 – oezi 2010-10-12 08:06:10

+0

@oezi,yup注意到我是不正确的,没有注意到你已经对我的评论 – thomaux 2010-10-12 08:07:49

0

首先,如果我是正确的,你正在定义一个复合键?这通常是不好的做法。最好有一个额外的ID列,并添加一个单独的约束来检查你有一个独特的组合。正如codymanix所建议的那样,您需要先将列更改为不再具有auto_increment,然后将其删除。

+1

回复为“这通常是不好的做法”:呃...不?关于n-m关系的链接表(如同一个例子)呢? – oezi 2010-10-12 08:08:47

+0

请参阅http://stackoverflow.com/questions/1264248/database-design-composite-key-vs-one-column-primary-key/1264256#1264256进行论证 – thomaux 2010-10-12 09:39:37

1

你必须在3(或4)步骤来做到这一点:

  1. 从当前的主键
  2. 下降去掉“自动incremet”属性主键
  3. 设置新的主键
  4. (复位 “auto_incremet” 你的耳鼻喉科主键列)

编辑:也许设置一个新的主要不是你真正想做的事情。请看看unique indexes - 我认为你想要在其他专栏上设置它们,以确保它们不会出现一次以上。