0
votes

Comment trouver des clés uniques dans une table dans SQL

J'ai plus de 100 tables dans SQL qui n'ont pas de clés ou d'index primaires sur les colonnes.

Je vérifie manuellement chaque colonne pour chaque table pour voir s'ils ont des clés uniques ou non.

Comment dois-je interroger pour obtenir des colonnes de clé uniques si elles ne sont pas présentes dans la table?


1 commentaires

Essayez la requête ci-dessous lorsque vous trouvez que le nom de la colonne concerné dans une table particulière n'a pas besoin de vérifier chaque table.


3 Réponses :


0
votes

Ici, vous devez trouver un nom de colonne appartient à une table particulière:

SELECT c.name AS ColName, t.name AS TableName
FROM sys.columns c
    JOIN sys.tables t ON c.object_id = t.object_id
WHERE c.name LIKE '%write here column name%'; 


0 commentaires

0
votes

Veuillez essayer de suivre la requête suivante

select stat.table_schema as database_name,
       stat.table_name,
       stat.index_name,
       group_concat(stat.column_name
            order by stat.seq_in_index separator ', ') as columns,
       tco.constraint_type
from information_schema.statistics stat
join information_schema.table_constraints tco
     on stat.table_schema = tco.table_schema
     and stat.table_name = tco.table_name
     and stat.index_name = tco.constraint_name
where stat.non_unique = 0
      and stat.table_schema not in ('information_schema', 'sys',
                                    'performance_schema', 'mysql')
      and (tco.constraint_type !='UNIQUE' OR tco.constraint_type !='PRIMARY KEY') //You can made changes here if needed
group by stat.table_schema,
         stat.table_name,
         stat.index_name,
         tco.constraint_type
order by stat.table_schema,
         stat.table_name;


0 commentaires

0
votes

Vous voudrez peut-être essayer quelque chose comme ça xxx

courtoisie: Ce lien


0 commentaires