zoukankan      html  css  js  c++  java
  • MySQL基础之 如何删除主键

    我们在一个表中设置了主键之后,那么如何删除主键呢?

    删除主键的语法是:

    ALTER  TABLE  TABLE_NAME  DROP  PRIMARY  KEY;

    在这里我们要考虑两种情况:

    1、可以直接使用drop删除主键的情况。

    mysql> create table test1_3(
        -> id int not null primary key,
        -> name char(10)
        -> );
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> alter table test1_3 drop primary key;
    Query OK, 0 rows affected (0.02 sec)
    Records: 0  Duplicates: 0  Warnings: 0

    2、如果带有主键的列还有AUTO_INCREMENT属性,需要间接方式去掉。

    mysql> create table test1_2(
        -> id int not null  auto_increment,
        -> name char(10),-> primary key(id)
        -> );
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> desc test1_2;+-------+----------+------+-----+---------+----------------+
    | Field | Type     | Null | Key | Default | Extra          |
    +-------+----------+------+-----+---------+----------------+
    | id    | int(11)  | NO   | PRI | NULL    | auto_increment |
    | name  | char(10) | YES  |     | NULL    |                |
    +-------+----------+------+-----+---------+----------------+
    2 rows in set (0.00 sec)
    
    mysql> desc test1_2;
    +-------+----------+------+-----+---------+----------------+
    | Field | Type     | Null | Key | Default | Extra          |
    +-------+----------+------+-----+---------+----------------+
    | id    | int(11)  | NO   | PRI | NULL    | auto_increment |
    | name  | char(10) | YES  |     | NULL    |                |
    +-------+----------+------+-----+---------+----------------+
    2 rows in set (0.00 sec)
    
    mysql> alter table test1_2 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> alter table test1_2 modify id int;
    Query OK, 0 rows affected (0.03 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    
    mysql> alter table test1_2 drop primary key;
    Query OK, 0 rows affected (0.02 sec)
    Records: 0  Duplicates: 0  Warnings: 0

    所以说如果列的属性还带有AUTO_INCREMENT,那么要先将这个列的自动增长属性去掉,才可以删除主键。

  • 相关阅读:
    asp.net 下载文件
    Asp.Net中用iframe解决模态窗口文件下载问题(转)
    如何获取网站的根目录(js或者asp.net)
    java中日期加减计算(转)
    网页颜色选择器
    信仰基督教的好处
    基因芯片数据字段
    独立分量分析(ICA)
    GenePix® Pro 文件格式
    OBO文件中的标签的含义/意思/意义
  • 原文地址:https://www.cnblogs.com/FengGeBlog/p/9927888.html
Copyright © 2011-2022 走看看