为什么DROP PRIMARY KEY会影响所有表行?

时间:2013-08-10 18:41:27

标签: mysql sql indexing primary-key rdbms

mysql> select count(*) from employees;  
+----------+  
| count(*) |  
+----------+  
|    10000 |  
+----------+  
1 row in set (0.01 sec)  

我不明白以下几点:
如果我删除主键,则表示我的表中所有行都会受到影响:

mysql> alter table employees drop primary key;  
Query OK, 10000 rows affected (0.33 sec)  
Records: 10000  Duplicates: 0  Warnings: 0  

但是如果我创建主键0行会受到影响。

mysql> alter table employees  
    -> add constraint employees_pk primary key(subsidiary_id, employee_id);  
Query OK, 0 rows affected (0.43 sec)  
Records: 0  Duplicates: 0  Warnings: 0    

我不明白这一点。我知道当我创建主键时,UNIQUE INDEX被创建为一个单独的数据结构,但为什么在DROP PRIMARY KEY上所有行都受到影响而在创建时没有?

1 个答案:

答案 0 :(得分:0)

可能是因为受影响的行是属于索引的行。因为索引被删除了。