如何识别任何 MySQL 数据库表的复合主键?


你可以使用聚合函数 count(*)。如果它返回的值大于 1,那就意味着表有复合主键。

我们首先创建一个表 −

mysql> create table DemoTable1324
   -> (
   -> StudentId int,
   -> StudentName varchar(20),
   -> StudentAge int,
   -> StudentCountryName varchar(20)
   -> );
Query OK, 0 rows affected (0.52 sec)

以下是添加复合主键的查询 −

mysql> alter table DemoTable1324 ADD CONSTRAINT constr_IdAgeCountry PRIMARY KEY (StudentId, StudentAge,StudentCountryName);
Query OK, 0 rows affected (1.29 sec)
Records: 0 Duplicates: 0 Warnings: 0

以下是识别任何 MySQL 数据库表中复合主键的查询 −

mysql> select count(*) AS Total
   -> from information_schema.KEY_COLUMN_USAGE
   -> where table_name='DemoTable1324' and table_schema=database();

这将生成以下输出 −

+-------+
| Total |
+-------+
|     3 |
+-------+
1 row in set, 2 warnings (0.76 sec)

更新于: 05-11-2019

2K+ 浏览

开启你的 职业

完成培训课程即可获得认证

开始
广告