drop - on delete cascade mysql
Obteniendo metadatos de tabla en MySQL (5)
Deberías probarlo y ver. INFORMATION_SCHEMA es parte de algún estándar y es soportado de una manera (casi) similar en otras bases de datos; este estándar debe documentarse; puede buscar ese documento.
Pero principalmente, el camino sería crear un conjunto de tablas de prueba y luego echar un vistazo a INFORMATION_SCHEMA para ver qué hay allí.
Estoy tratando de averiguar cómo obtener la siguiente información de restricción de una tabla en MySQL 5.0:
- Clave primaria
- claves extranjeras y referencias de tabla
- columnas únicas
¿Cuál es la sintaxis de la consulta o las consultas para hacerlo? Tengo la sensación de que estoy cerca de esto , pero no hay ningún ejemplo.
El comando SHOW COLUMNS le mostrará la clave principal y las columnas exclusivas de una tabla.
En cuanto a las claves externas, puede usar algo como el comando SHOW CREATE TABLE, que generará las instrucciones DDL necesarias para replicar la tabla.
Utilizar
show fields from table_name
show keys from table_name
para obtener claves primarias, claves externas, únicas, etc.
para obtener la tabla a la que hace referencia el uso de una clave externa:
SELECT `REFERENCED_TABLE_NAME`
FROM `information_schema`.`KEY_COLUMN_USAGE`
WHERE
`TABLE_NAME` = ''[table_containing_foreign_key]'' AND
`COLUMN_NAME` = ''[foreign_key]''
sustituyendo [table_containing_foreign_key]
y [foreign_key]
con sus valores
utilice lo siguiente para obtener el mismo uso de Seleccionar consulta:
SELECT table_schema, table_name, column_name, ordinal_position, data_type, numeric_precision, column_type FROM information_schema.columns WHERE table_name = ''[TABLE_NAME]'';
Para MySQL:
1) obtener metadatos Tabla / Campos
SELECT table_schema, table_name, column_name, ordinal_position, data_type,
numeric_precision, column_type, column_default, is_nullable, column_comment
FROM information_schema.columns
WHERE (table_schema=''schema_name'' and table_name = ''table_name'')
order by ordinal_position;
O
show fields from ''table_name''
2) obtener la tabla de referencias de Foregn Keys
SELECT `REFERENCED_TABLE_NAME`
FROM `information_schema`.`KEY_COLUMN_USAGE`
WHERE
`TABLE_NAME` = ''table_name'' AND
`COLUMN_NAME` = ''Column_Name''
3) obtener índices (primarios y extranjeros) para una tabla
show keys from `table_name`
5) obtener todos los índices y la tabla referida
SELECT *
FROM `KEY_COLUMN_USAGE`
WHERE
`TABLE_NAME` = ''table_name'' AND
`TABLE_SCHEMA` = ''schema_name''
O
SELECT *
FROM `REFERENTIAL_CONSTRAINTS`
WHERE
`TABLE_NAME` = ''table_name'' AND
`CONSTRAINT_SCHEMA` = ''schema_name''
6) obtener PROCEDIMIENTOS ALMACENADOS
SELECT *
FROM `ROUTINES`
WHERE
`ROUTINE_SCHEMA` = ''schema_name''
7) obtener disparos
SELECT *
FROM `TRIGGERS`
WHERE
`TRIGGER_SCHEMA` = ''schema_name''
8) obtener EVENTOS
SELECT *
FROM `EVENTS`
WHERE
`EVENT_SCHEMA` = ''schema_name''
9) obtener VIEWS
SELECT *
FROM `VIEWS`
WHERE
`TABLE_NAME` = ''table_name'' AND
`TABLE_SCHEMA` = ''schema_name''