Mysql
 sql >> Database >  >> RDS >> Mysql

come selezionare tutte le colonne senza chiave PRIMARIA in mysql?

Questo è qualcosa su cui vale la pena fare qualche ricerca, se hai intenzione di lavorare con i database in qualsiasi modo.

Tutti i DBMS con cui ho lavorato finora hanno un mezzo per esaminare i vincoli, le colonne e le informazioni sulla tabella. Quelli per MySQL che ti aiuteranno a fare quello che vuoi sono probabilmente in INFORMATION_SCHEMA:

TABLE_CONSTRAINTS Il riferimento MySQL per questo è qui .

SELECT table_name, constraint_name, constraint_type FROM INFORMATION_SCHEMA.table_constraints;

COLONNE Il riferimento MySQL per questo è qui.

SELECT column_name FROM INFORMATION_SCHEMA.columns;

KEY_COLUMN_USAGE

Dovresti essere in grado di fare qualcosa del genere per ottenere ciò che desideri:

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'

Dovrebbe essere essenzialmente ciò di cui hai bisogno. Visualizzazioni/tabelle come queste possono essere i tuoi migliori amici quando hai bisogno di ottenere informazioni sul tuo schema.

Spero che queste informazioni siano utili.