ITPub博客

首页 > 数据库 > MySQL > 删除自增长列主键

删除自增长列主键

原创 MySQL 作者:javenzhen 时间:2015-07-14 10:40:39 0 删除 编辑
在删除自增长列主键时,需要先改变自增长属性,然后才能删除主键。

  1. mysql> show create table t1\\G
  2. *************************** 1. row ***************************
  3.        Table: t1
  4. Create Table: CREATE TABLE `t1` (
  5.   `id` int(11) NOT NULL AUTO_INCREMENT,
  6.   `name` varchar(50) DEFAULT NULL,
  7.   PRIMARY KEY (`id`)
  8. ) ENGINE=InnoDB DEFAULT CHARSET=latin1
  9. 1 row in set (0.01 sec)
表t1的id列有自增长属性,且为主键

  1. mysql> alter table t1 drop primary key;
  2. ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
直接删除主键报错,需要先改变表的定义

  1. mysql> alter table t1 change id id int(10);
  2. Query OK, 0 rows affected (0.13 sec)
  3. Records: 0 Duplicates: 0 Warnings: 0

  4. mysql> show create table t1\\G
  5. *************************** 1. row ***************************
  6.        Table: t1
  7. Create Table: CREATE TABLE `t1` (
  8.   `id` int(10) NOT NULL DEFAULT \'0\',
  9.   `name` varchar(50) DEFAULT NULL,
  10.   PRIMARY KEY (`id`)
  11. ) ENGINE=InnoDB DEFAULT CHARSET=latin1
  12. 1 row in set (0.00 sec)
然后在删除自增长属性列上的主键

  1. mysql> alter table t1 drop primary key;
  2. Query OK, 0 rows affected (0.06 sec)
  3. Records: 0 Duplicates: 0 Warnings: 0

  4. mysql> show create table t1\\G
  5. *************************** 1. row ***************************
  6.        Table: t1
  7. Create Table: CREATE TABLE `t1` (
  8.   `id` int(10) NOT NULL DEFAULT \'0\',
  9.   `name` varchar(50) DEFAULT NULL
  10. ) ENGINE=InnoDB DEFAULT CHARSET=latin1
  11. 1 row in set (0.00 sec)




来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12219480/viewspace-1732531/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2011-01-27

  • 博文量
    41
  • 访问量
    124965