diff --git a/sql/sql_table.cc b/sql/sql_table.cc index a62c993ecfd08..019650ae0c2f4 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -4042,7 +4042,7 @@ mysql_prepare_create_table(THD *thd, HA_CREATE_INFO *create_info, my_error(ER_WRONG_NAME_FOR_INDEX, MYF(0), key_info->name); DBUG_RETURN(TRUE); } - if (!(key_info->flags & HA_NULL_PART_KEY)) + if (key->type == Key::UNIQUE && !(key_info->flags & HA_NULL_PART_KEY)) unique_key=1; key_info->key_length=(uint16) key_length; if (key_length > max_key_length && key->type != Key::FULLTEXT) diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index fc8eb2a5b0542..398b303897f69 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -11134,11 +11134,6 @@ innobase_table_flags( } } - if (srv_force_primary_key && form->s->primary_key >= MAX_KEY) { - my_error(ER_REQUIRES_PRIMARY_KEY, MYF(0)); - DBUG_RETURN(false); - } - row_format = form->s->row_type; if (create_info->key_block_size) { diff --git a/storage/xtradb/handler/ha_innodb.cc b/storage/xtradb/handler/ha_innodb.cc index e38a395406950..6ee8d397368e0 100644 --- a/storage/xtradb/handler/ha_innodb.cc +++ b/storage/xtradb/handler/ha_innodb.cc @@ -11645,11 +11645,6 @@ innobase_table_flags( } } - if (srv_force_primary_key && form->s->primary_key >= MAX_KEY) { - my_error(ER_REQUIRES_PRIMARY_KEY, MYF(0)); - DBUG_RETURN(false); - } - row_format = form->s->row_type; if (create_info->key_block_size) {