Php 如何创建第二个主列(自动增量)

Php 如何创建第二个主列(自动增量),php,mysql,Php,Mysql,我要这样的桌子 ------------------------ Id | MergeId | name | ------------------------ 1 | M1 | Riya | 2 | M2 | diya | 3 | M3 | tiya | ------------------------ MergeId已经被指定为主键,现在我想要一个新的列ID(自动增量),但是当我尝试创建它时,会显示“无法创建一个表应该只有一个主键”

我要这样的桌子

------------------------
Id  |  MergeId  | name |
------------------------
1   |   M1      | Riya |
2   |   M2      | diya |
3   |   M3      | tiya |
------------------------
MergeId已经被指定为主键,现在我想要一个新的列ID(自动增量),但是当我尝试创建它时,会显示“无法创建一个表应该只有一个主键” 但是我不能将我的合并ID从主约束更改为其他约束。 请有人帮忙,谢谢

查询

ALTER TABLE  `merge_info` ADD  `id` INT( 11 ) NOT NULL AUTO_INCREMENT FIRST ,
ADD PRIMARY KEY (  `id` ) ,
ADD INDEX (  `id` ) ;
错误

#1068 - Multiple primary key defined 

如错误消息所示,每个表只能有一个主键。您可以拥有一个复合主键(即由多列组成的主键)。可以添加约束,使列的行为类似于主键。您可以要求NOTNULL和UNIQUE,添加自动增量语义,并在列(或组合列组)上添加索引


(说明:您可以对单个列应用自动增量…约束和索引可以在复合列和单列上完成)。

因为错误消息表明,每个表只能有一个主键。您可以拥有一个复合主键(即由多列组成的主键)。可以添加约束,使列的行为类似于主键。您可以要求NOTNULL和UNIQUE,添加自动增量语义,并在列(或组合列组)上添加索引


(说明:您可以对单个列应用自动增量…约束和索引可以在复合列和单列上完成)。

您只能有一个主键。但是,可以将列设置为自动递增。我想你想要的是把那张桌子和另一张桌子连在一起,对吗?我相信它们被称为外键,但我认为这只适用于MSSQL,从未在MySQL中使用过

自动递增是一个你做什么的问题。PHPMyAdmin您只需选择它作为列属性之一

PHPMyAdmin:

SQL:

根据吉姆的说法:

SQL:

经过思考:

看看这个链接,它可能比其他任何东西都有好处。下次请说得更具体些


您只能有一个主键。但是,可以将列设置为自动递增。我想你想要的是把那张桌子和另一张桌子连在一起,对吗?我相信它们被称为外键,但我认为这只适用于MSSQL,从未在MySQL中使用过

自动递增是一个你做什么的问题。PHPMyAdmin您只需选择它作为列属性之一

PHPMyAdmin:

SQL:

根据吉姆的说法:

SQL:

经过思考:

看看这个链接,它可能比其他任何东西都有好处。下次请说得更具体些


要成为自动递增列-列需要是主键或具有索引。在
id
列中添加索引。然后可以使其自动递增

alter table merge_info add index id (id);
ALTER TABLE merge_info modify COLUMN id int auto_increment;

要成为自动递增列-列需要是主键或具有索引。在
id
列中添加索引。然后可以使其自动递增

alter table merge_info add index id (id);
ALTER TABLE merge_info modify COLUMN id int auto_increment;

我被你的问题弄糊涂了;当然,您可以使列自动递增,而不必将其作为主键。这真的是这里唯一的问题吗,还是还有其他问题?请展示你用来添加自动递增列的代码。如何在没有主键的情况下自动递增我被你的问题弄糊涂了;当然,您可以使列自动递增,而不必将其作为主键。这真的是这里唯一的问题吗,还是还有其他问题?请显示用于添加自动增量列的代码。如何在没有主键的情况下实现自动增量可能还希望建议添加唯一约束。这将更接近于主键的语义!表上只能有一个自动增量列,它必须是键。哎呀,我错了。谢谢你抓住了!可能还想建议添加唯一约束。这将更接近于主键的语义!表上只能有一个自动增量列,它必须是键。哎呀,我错了。谢谢你抓住了!
alter table merge_info add index id (id);
ALTER TABLE merge_info modify COLUMN id int auto_increment;