Comment obtenir une liste de toutes les contraintes d'une base de données particulière?Liste des contraintes de la base de données MySQL
Répondre
Utilisez la table information_schema.table_constraints
pour obtenir les noms des contraintes définies sur chaque table:
select *
from information_schema.table_constraints
where constraint_schema = 'YOUR_DB'
Utilisez le tableau information_schema.key_column_usage
pour obtenir les champs dans chacun de ces contraintes:
select *
from information_schema.key_column_usage
where constraint_schema = 'YOUR_DB'
Si Vous parlez plutôt des contraintes de clé étrangère, utilisez information_schema.referential_constraints
:
select *
from information_schema.referential_constraints
where constraint_schema = 'YOUR_DB'
Cette liste inclura uniquement les contraintes UNIQUE, PRIMARY KEY ou FOREIGN KEY. CHECK est possible, mais n'est pas appliqué. Les contraintes DEFAULT ne seront pas visibles avec cette requête. –
MySQL ne stocke pas les contraintes CHECK. Si vous essayez d'en définir un, il l'analyse et le supprime silencieusement. –
La valeur DEFAULT ne compte pas comme contrainte. Il est stocké dans 'information_schema.columns.column_default'. –
Bonne réponse de @Senseful.
je présente requête modifiée pour ceux qui sont à la recherche que pour la liste des noms de contrainte (et pas d'autres détails/colonnes):
SELECT DISTINCT(constraint_name)
FROM information_schema.table_constraints
WHERE constraint_schema = 'YOUR_DB'
ORDER BY constraint_name ASC;
si vous avez besoin d'en supprimer une fois que vous le trouvez, voir ici http://stackoverflow.com/a/838412/2401804 – r3wt
SELECT * FROM USER_CONSTRAINTS OÙ TABLE_NAME = "TABNAM";
Cela aide vraiment si vous voulez voir les principales contraintes primaires et étrangères, ainsi que les règles autour de ces contraintes telles que ON_UPDATE et ON_DELETE et les noms de colonnes et des colonnes étrangères tous ensemble:
SELECT tc.constraint_schema,tc.constraint_name,tc.table_name,tc.constraint_type,kcu.table_name,kcu.column_name,kcu.referenced_table_name,kcu.referenced_column_name,rc.update_rule,rc.delete_rule
FROM information_schema.table_constraints tc
inner JOIN information_schema.key_column_usage kcu
ON tc.constraint_catalog = kcu.constraint_catalog
AND tc.constraint_schema = kcu.constraint_schema
AND tc.constraint_name = kcu.constraint_name
AND tc.table_name = kcu.table_name
LEFT JOIN information_schema.referential_constraints rc
ON tc.constraint_catalog = rc.constraint_catalog
AND tc.constraint_schema = rc.constraint_schema
AND tc.constraint_name = rc.constraint_name
AND tc.table_name = rc.table_name
WHERE tc.constraint_schema = 'my_db_name'
Vous pouvez même Pour ajouter d'autres informations sur ces colonnes, ajoutez simplement ceci dans le SQL (et sélectionnez les colonnes que vous voulez):
LEFT JOIN information_schema.COLUMNS c
ON kcu.constraint_schema = c.table_schema
AND kcu.table_name = c.table_name
AND kcu.column_name = c.column_name
- 1. Contraintes dans la base de données SQL
- 2. Conception de base de données et d'application - suppression des contraintes?
- 3. Création d'une base de données pour l'appariement des contraintes
- 4. Générer automatiquement des instructions SQL INSERT avec des données respectant les contraintes de base de données
- 5. contraintes de clé étrangère mysql
- 6. Création de contraintes de base de données sur des tables à la volée
- 7. Base de données Wordpress dans la base de données MySQL?
- 8. Question de conception/modélisation de base de données - Contraintes ou pas de contraintes?
- 9. Chargement des données dans la base de données mysql parallèlement
- 10. Importer des données Excel dans la base de données mysql
- 11. Stocker des données simples dans la base de données mysql
- 12. Jusqu'où aller avec les contraintes de base de données?
- 13. Synchronisation de la base de données MySQL
- 14. Configuration de la base de données MySQL
- 15. Expression des contraintes de données dans SQL
- 16. Normalisation de la base de données mysql
- 17. Récupère la liste des colonnes de contraintes uniques (en TSQL)?
- 18. Liste des dates en mois de la base de données
- 19. Suivi des modifications de la base de données MySQL
- 20. transfering MySQL Les enregistrements de base de données à la base de données
- 21. Récupération de la base de données MySQL
- 22. question base de données de conception MySQL
- 23. Base de données MySQL de mots anglais?
- 24. Afficher toutes les contraintes de table/base de données dans MySQL
- 25. Réplication SQL Server (requêtes et contraintes inter-base de données)
- 26. Mail vers la base de données MySQL
- 27. Rechercher dans la base de données MySQL
- 28. restaurer la base de données mysql
- 29. Python & MySQL: Elément correspondant de la liste avec un enregistrement de la base de données
- 30. Mysql - modifier la structure de la base de données - scénario de la base de données
Il existe plusieurs types de contraintes dans MySQL. Lequel voulez-vous dire? Pouvez-vous donner un exemple du genre de chose que vous cherchez? –