mysql 查看所有沒有主鍵的表

SELECT
    #CONCAT("truncate table ",table_name,";")
table_name
FROM
    information_schema. TABLES
WHERE
    table_schema = 'test'
AND TABLE_NAME NOT IN (
    SELECT
        table_name
    FROM
        information_schema.table_constraints t
    JOIN information_schema.key_column_usage k USING (
        constraint_name,
        table_schema,
        table_name
    )
    WHERE
        t.constraint_type = 'PRIMARY KEY'
    AND t.table_schema = 'test'
)

將test改成自己mysql的數據庫名,即可查出結果。這個sql的結果會包含view。

下面這個sql只會返回table。

USE INFORMATION_SCHEMA;

SELECT

    TABLES.table_schema,TABLES.table_name

FROM TABLES

LEFT JOIN KEY_COLUMN_USAGE AS c

ON (

       TABLES.TABLE_NAME = c.TABLE_NAME

   AND c.CONSTRAINT_SCHEMA = TABLES.TABLE_SCHEMA

   AND c.constraint_name = 'PRIMARY'

)

WHERE

    tables.table_type <>"VIEW" and TABLES.table_schema in ('test1','test2','test3')

AND c.constraint_name IS NULL;

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章