PostgreSQL,MonetDB和MySQL为现有表添加主键

时间:2018-03-17 23:06:37

标签: mysql sql database postgresql monetdb

当我将主键添加到已有数据的表时,每个数据库管理系统都会做什么?

他们是否会分析列的每个值以确认它是唯一的? 或者他们是否有其他优化机制?如果是这样的话,那个机制是什么?

1 个答案:

答案 0 :(得分:1)

是的,至少在PostgreSQL和MySQL(也可能是MonetDB)中,DBMS将首先检查所有值是否都是唯一的(就像在sql查询中使用" unique"参数时)。您可以通过计算所有行来计算它,然后计算一个"唯一的"选择相同的行。如果行号不相等,您将无法创建主键。 确实创建了一个索引,但只是为了在创建主键后使用主键时加快速度。