Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL:更改我的主键的列_Mysql_Database - Fatal编程技术网

MySQL:更改我的主键的列

MySQL:更改我的主键的列,mysql,database,Mysql,Database,我有一个具有以下主键的表: PRIMARY KEY (`Id`,`InputOutputConfigurationServerAccountId`,`Identifier`) 我想修改它,使PK仅为Id列。我该怎么做 移除旧的PK ALTER TABLE\u name DROP主键 添加新的PK altertable\u name添加主键(Id) 问题似乎是您将Id定义为auto_increment。您需要首先将其更改为纯整数,由他们进行更改,然后将其恢复为自动增量。 试试这个: ALTER

我有一个具有以下主键的表:

PRIMARY KEY (`Id`,`InputOutputConfigurationServerAccountId`,`Identifier`)
我想修改它,使PK仅为
Id
列。我该怎么做

  • 移除旧的PK
    ALTER TABLE\u name DROP主键
  • 添加新的PK
    altertable\u name添加主键(Id)

  • 问题似乎是您将
    Id
    定义为
    auto_increment
    。您需要首先将其更改为纯整数,由他们进行更改,然后将其恢复为自动增量。
    试试这个:

    ALTER TABLE SO1 MODIFY COLUMN ID INT;
    ALTER TABLE SO1 DROP PRIMARY KEY;
    ALTER TABLE SO1 ADD PRIMARY KEY (id);
    ALTER TABLE SO1 MODIFY COLUMN ID INT AUTO_INCREMENT;
    
    以下是对上述内容的测试(顺便说一句,如果我没有首先修改该专栏,我会得到您在对其他答案的评论中提到的错误):

    一切正常。最终输出:

    CREATE TABLE `SO1` (
      `ID` int(11) NOT NULL AUTO_INCREMENT,
      `InputOutputConfigurationServerAccountId` int(11) NOT NULL DEFAULT '0',
      `Identifier` int(11) NOT NULL DEFAULT '0',
      PRIMARY KEY (`ID`)
    )
    

    删除主键
    添加主键…
    Mike,当我尝试删除主键时,我得到以下错误:
    #1075-表定义不正确;只能有一个自动列,必须将其定义为键
    在删除自动增量之前。
    CREATE TABLE `SO1` (
      `ID` int(11) NOT NULL AUTO_INCREMENT,
      `InputOutputConfigurationServerAccountId` int(11) NOT NULL DEFAULT '0',
      `Identifier` int(11) NOT NULL DEFAULT '0',
      PRIMARY KEY (`ID`)
    )