1. <small id='z3whf'></small><noframes id='z3whf'>

    <tfoot id='z3whf'></tfoot>
    <i id='z3whf'><tr id='z3whf'><dt id='z3whf'><q id='z3whf'><span id='z3whf'><b id='z3whf'><form id='z3whf'><ins id='z3whf'></ins><ul id='z3whf'></ul><sub id='z3whf'></sub></form><legend id='z3whf'></legend><bdo id='z3whf'><pre id='z3whf'><center id='z3whf'></center></pre></bdo></b><th id='z3whf'></th></span></q></dt></tr></i><div id='z3whf'><tfoot id='z3whf'></tfoot><dl id='z3whf'><fieldset id='z3whf'></fieldset></dl></div>
  2. <legend id='z3whf'><style id='z3whf'><dir id='z3whf'><q id='z3whf'></q></dir></style></legend>

        <bdo id='z3whf'></bdo><ul id='z3whf'></ul>

      删除 MySQL 中的主键

      Remove Primary Key in MySQL(删除 MySQL 中的主键)
      <i id='7jLdp'><tr id='7jLdp'><dt id='7jLdp'><q id='7jLdp'><span id='7jLdp'><b id='7jLdp'><form id='7jLdp'><ins id='7jLdp'></ins><ul id='7jLdp'></ul><sub id='7jLdp'></sub></form><legend id='7jLdp'></legend><bdo id='7jLdp'><pre id='7jLdp'><center id='7jLdp'></center></pre></bdo></b><th id='7jLdp'></th></span></q></dt></tr></i><div id='7jLdp'><tfoot id='7jLdp'></tfoot><dl id='7jLdp'><fieldset id='7jLdp'></fieldset></dl></div>

          <tbody id='7jLdp'></tbody>
          • <bdo id='7jLdp'></bdo><ul id='7jLdp'></ul>

              <small id='7jLdp'></small><noframes id='7jLdp'>

              • <tfoot id='7jLdp'></tfoot>
                <legend id='7jLdp'><style id='7jLdp'><dir id='7jLdp'><q id='7jLdp'></q></dir></style></legend>

                本文介绍了删除 MySQL 中的主键的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                限时送ChatGPT账号..

                我有以下表架构,它将 user_customers 映射到实时 MySQL 数据库的权限:

                I have the following table schema which maps user_customers to permissions on a live MySQL database:

                mysql> describe user_customer_permission;
                +------------------+---------+------+-----+---------+----------------+
                | Field            | Type    | Null | Key | Default | Extra          |
                +------------------+---------+------+-----+---------+----------------+
                | id               | int(11) | NO   | PRI | NULL    | auto_increment |
                | user_customer_id | int(11) | NO   | PRI | NULL    |                |
                | permission_id    | int(11) | NO   | PRI | NULL    |                |
                +------------------+---------+------+-----+---------+----------------+
                3 rows in set (0.00 sec)
                

                我想删除 user_customer_id 和 permission_id 的主键并保留 id 的主键.

                I would like to remove the primary keys for user_customer_id and permission_id and retain the primary key for id.

                当我运行命令时:

                alter table user_customer_permission drop primary key;
                

                我收到以下错误:

                ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
                

                如何删除列的主键?

                推荐答案

                如果没有索引,维护自增列会变得太昂贵,这就是为什么 MySQL 要求自增列作为最左边的部分索引.

                Without an index, maintaining an autoincrement column becomes too expensive, that's why MySQL requires an autoincrement column to be a leftmost part of an index.

                您应该在删除键之前删除自动增量属性:

                You should remove the autoincrement property before dropping the key:

                ALTER TABLE user_customer_permission MODIFY id INT NOT NULL;
                ALTER TABLE user_customer_permission DROP PRIMARY KEY;
                

                请注意,您有一个复合 PRIMARY KEY,它涵盖了所有三列,并且 id 不能保证是唯一的.

                Note that you have a composite PRIMARY KEY which covers all three columns and id is not guaranteed to be unique.

                如果它恰好是唯一的,您可以再次将其设为 PRIMARY KEYAUTO_INCREMENT:

                If it happens to be unique, you can make it to be a PRIMARY KEY and AUTO_INCREMENT again:

                ALTER TABLE user_customer_permission MODIFY id INT NOT NULL PRIMARY KEY AUTO_INCREMENT;
                

                这篇关于删除 MySQL 中的主键的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                相关文档推荐

                Can#39;t Create Entity Data Model - using MySql and EF6(无法创建实体数据模型 - 使用 MySql 和 EF6)
                MySQL select with CONCAT condition(MySQL选择与CONCAT条件)
                Capitalize first letter of each word, in existing table(将现有表格中每个单词的首字母大写)
                How to retrieve SQL result column value using column name in Python?(如何在 Python 中使用列名检索 SQL 结果列值?)
                Update row with data from another row in the same table(使用同一表中另一行的数据更新行)
                Exporting results of a Mysql query to excel?(将 Mysql 查询的结果导出到 excel?)

                <small id='wwGzg'></small><noframes id='wwGzg'>

                  <tfoot id='wwGzg'></tfoot>
                      <tbody id='wwGzg'></tbody>
                        <bdo id='wwGzg'></bdo><ul id='wwGzg'></ul>
                        • <i id='wwGzg'><tr id='wwGzg'><dt id='wwGzg'><q id='wwGzg'><span id='wwGzg'><b id='wwGzg'><form id='wwGzg'><ins id='wwGzg'></ins><ul id='wwGzg'></ul><sub id='wwGzg'></sub></form><legend id='wwGzg'></legend><bdo id='wwGzg'><pre id='wwGzg'><center id='wwGzg'></center></pre></bdo></b><th id='wwGzg'></th></span></q></dt></tr></i><div id='wwGzg'><tfoot id='wwGzg'></tfoot><dl id='wwGzg'><fieldset id='wwGzg'></fieldset></dl></div>
                        • <legend id='wwGzg'><style id='wwGzg'><dir id='wwGzg'><q id='wwGzg'></q></dir></style></legend>