如何检查MySQL中是否存在主键

如何检查MySQL中是否存在主键,mysql,sql,Mysql,Sql,我尝试了几个sql脚本,但都失败了。这是我接近的一个: SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE table_schema = schema() AND table_name = 'my_table_name' AND index_name = 'column_name'; 我想你需要下面的陈述 或以下 我想你需要下面的陈述 或以下 为什么索引你的名字?它不存在于列系统表中。它使用列名称而不是索引名称。我的后续问题是

我尝试了几个sql脚本,但都失败了。这是我接近的一个:

SELECT *
FROM INFORMATION_SCHEMA.STATISTICS
WHERE table_schema = schema()
AND   table_name   = 'my_table_name'
AND   index_name   = 'column_name';

我想你需要下面的陈述

或以下


我想你需要下面的陈述

或以下


为什么索引你的名字?它不存在于列系统表中。它使用列名称而不是索引名称。我的后续问题是,当我用ALTERTABLE删除主键时,我的表名会删除主键;该列仍然显示。为什么要索引名称?它不存在于列系统表中。它使用列名称而不是索引名称。我的后续问题是,当我用ALTERTABLE删除主键时,我的表名会删除主键;该列仍然显示。可能重复的可能重复的
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_schema = schema()
AND column_key = 'PRI'
AND table_name = 'my_table_name'
AND column_name = 'column_name';
select constraint_name
  from information_schema.table_constraints
 where table_name = 'mytable'
   and table_schema = 'myschema'
   and constraint_name = 'PRIMARY';
SELECT EXISTS(
  SELECT 1
  FROM information_schema.columns
  WHERE 
     table_name='messages'
     and column_key = 'PRI'
) As HasPrimaryKey;