¿Existe alguna manera fácil de consultar una tabla por sus restricciones (foreignkeys, específicamente) como show create table, pero solo para las restricciones?Mysql show create constraint?
gracias,
pvgoddijn
¿Existe alguna manera fácil de consultar una tabla por sus restricciones (foreignkeys, específicamente) como show create table, pero solo para las restricciones?Mysql show create constraint?
gracias,
pvgoddijn
para mostrar sólo las restricciones de clave externa se puede comprobar la CONSTRAINT_TYPE en information_schema.table_constraints y obtener las columnas afectadas en information_schema.key_column_usage a través de una unión
SELECT b.table_name, b.column_name, b.constraint_name,
b.referenced_table_name, b.referenced_column_name
FROM information_schema.table_constraints a
JOIN information_schema.key_column_usage b
ON a.table_schema = b.table_schema AND a.constraint_name = b.constraint_name
WHERE a.table_schema=database() AND a.constraint_type='FOREIGN KEY'
ORDER BY b.table_name, b.constraint_name;
SHOW TABLE STATUS FROM db_name LIKE 'tbl_name';
Las restricciones de clave externa se enumeran en la columna Comentario de la salida.
Este no funciona en todos los tipos de tabla. –
SHOW TABLE STATUS FROM db_name LIKE 'tbl_name';
select * from
information_schema.KEY_COLUMN_USAGE
where table_schema = <db_name>
and table_name = <table_name>;
gracias esto era exactamente lo que estaba buscando. – pvgoddijn
+1 BONITA CONSULTA. FTW ... – KeatsKelleher