SELECT*FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME ='xxx';
当然,如果想要精确的确定某个列是否有某个类型的索引则需要用到另一个表:
1 2 3 4 5 6 7
SELECT* FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS A LEFTJOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE C ON C.CONSTRAINT_NAME = A.CONSTRAINT_NAME WHERE A.TABLE_NAME ='xxx' AND C.COLUMN_NAME ='id' AND A.CONSTRAINT_TYPE ='UNIQUE';
Oracle
同 MySQL 一样,也是使用到了元表:
1 2 3 4 5 6 7
SELECT* FROM SYS.USER_CONSTRAINTS A LEFTJOIN SYS.USER_CONS_COLUMNS B ON A.TABLE_NAME = B.TABLE_NAME AND A.CONSTRAINT_NAME = B.CONSTRAINT_NAME WHERE A.TABLE_NAME ='XXX' AND A.CONSTRAINT_TYPE ='U' AND B.COLUMN_NAME ='ID' AND A.OWNER ='XXX_OWNER';