В частности, MySQL, имя ограничения для PRIMARY KEY игнорируется. Я протестировал создание таблицы примера в моей test
схеме, а затем я изучил метаданные:
mysql> select * from INFORMATION_SCHEMA.TABLE_CONSTRAINTS where constraint_schema='test';
+--------------------+-------------------+-----------------+--------------+------------+-----------------+
| CONSTRAINT_CATALOG | CONSTRAINT_SCHEMA | CONSTRAINT_NAME | TABLE_SCHEMA | TABLE_NAME | CONSTRAINT_TYPE |
+--------------------+-------------------+-----------------+--------------+------------+-----------------+
| def | test | PRIMARY | test | STUDENT | PRIMARY KEY |
| def | test | STU_NAME | test | STUDENT | UNIQUE |
| def | test | STU_ADDRESS | test | STUDENT | UNIQUE |
+--------------------+-------------------+-----------------+--------------+------------+-----------------+
Вы можете видеть, что ограничение PRIMARY KEY просто называется "PRIMARY", не учитывая имя ограничения в вашем CREATE ТАБЛИЦА высказывания
Присвоение имени допустимому синтаксису SQL, но MySQL в этом случае игнорирует его.
В некоторых других брендах базы данных SQL, таких как Oracle или Microsoft, имя ограничения будет запомнено.
У ограничений есть имена, так что вы можете исследовать их в метаданных, или в некоторых случаях вы можете удалить их, указав имя.