第三章 第二节:修改数据表——ALTER(三) 删除约束

来源:互联网 发布:c语言中char的意思 编辑:程序博客网 时间:2024/06/06 16:44

删除主键

ALTER TABLE tb_name DROP PRIMARY KEY;
删除users2中的id主键约束
ALTER TABLE users2 DROP PRIMARY KEY;

删除唯一约束

ALTER TABLE users2 DROP UNIQUE [INDEX|KEY] index_name;

删除users2中的username的唯一约束
首先要知道约束的名字,而不是字段的名字!!!!!
 SHOW INDEXES FROM users2 \G;
*************************** 1. row ***************************
       Table: users2
  Non_unique: 0
    Key_name: PRIMARY
Seq_in_index: 1
 Column_name: id
   Collation: A
 Cardinality: 0
    Sub_part: NULL
      Packed: NULL
        Null:
  Index_type: BTREE
     Comment:
*************************** 2. row ***************************
       Table: users2
  Non_unique: 0
    Key_name: username
Seq_in_index: 1
 Column_name: username
   Collation: A
 Cardinality: 0
    Sub_part: NULL
      Packed: NULL
        Null:
  Index_type: BTREE
     Comment:
*************************** 3. row ***************************
       Table: users2
  Non_unique: 1
    Key_name: pid
Seq_in_index: 1
 Column_name: pid
   Collation: A
 Cardinality: 0
    Sub_part: NULL
      Packed: NULL
        Null: YES
  Index_type: BTREE
     Comment:
看第二个索引中绿色的位置
这里约束的名字恰好和字段名字一样,所以。。。
ALTER TABLE users2 DROP UNIQUE username;

删除外键约束

ALTER TABLE tb_name DROP FOREIGN KEY fk_symbol
删除users2中的外键约束
首先要知道外键约束的名称,用SHOW CREATE TABLE users2;查询
+--------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table  | Create Table                                                                                                                                                                                                                                                                                                                                                                                        |
+--------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| users2 | CREATE TABLE `users2` (
  `username` varchar(10) NOT NULL,
  `pid` smallint(5) unsigned default NULL,
  `id` smallint(5) unsigned NOT NULL default '0',
  `age` tinyint(3) unsigned NOT NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `username` (`username`),
  KEY `pid` (`pid`),
  CONSTRAINT `users2_ibfk_1` FOREIGN KEY (`pid`) REFERENCES `provinces` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+--------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
绿色的就是外键的名称,所以。。。
ALTER TABLE users2 DROP FOREIGN KEY users2_ibfk_1;