sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo seleccionar todas las columnas sin clave PRIMARIA en mysql?

Esto es algo sobre lo que vale la pena investigar un poco, si va a trabajar con bases de datos de cualquier tamaño.

Todos los DBMS con los que he trabajado hasta ahora tienen un medio para ver las restricciones, las columnas y la información de la tabla. Los de MySQL que le ayudarán a hacer lo que quiere están probablemente en el INFORMACION_ESQUEMA:

TABLE_CONSTRAINTS La referencia de MySQL para esto está aquí .

SELECT table_name, constraint_name, constraint_type FROM INFORMATION_SCHEMA.table_constraints;

COLUMNAS La referencia de MySQL para esto está aquí.

SELECT column_name FROM INFORMATION_SCHEMA.columns;

KEY_COLUMN_USAGE

Debería poder hacer algo como esto para obtener lo que desea:

SELECT INFORMATION_SCHEMA.key_column_usage.column_name 
FROM INFORMATION_SCHEMA.key_column_usage
JOIN INFORMATION_SCHEMA.table_constraints 
ON INFORMATION_SCHEMA.key_column_usage.column_name = INFORMATION_SCHEMA.table_constraints.column_name
WHERE INFORMATION_SCHEMA.table_constraints.constraint_type <> 'PRIMARY KEY'

El debe ser esencialmente lo que necesita. Vistas/tablas como estas pueden ser su mejor amigo cuando necesite obtener información sobre su esquema.

Espero que esta información ayude.