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

Viser MYSQL-tabelkolonner med nøgletyper og reference

Dette er min sidste (pivotiserede) forespørgsel:

SELECT c.COLUMN_NAME, --c.COLUMN_KEY, IF(EXISTS(select * FROM information_schema.KEY_COLUMN_USAGE k JOIN information_schema.TABLE_CONSTRAINTS tc ON (k.TABLE_SCHEMA=tc.TABLE_SCHEMA AND k.TABLE_NAME=tc.TABLE_NAME AND k.CONSTRAINT_NAME=tc.CONSTRAINT_NAME) WHERE k.TABLE_SCHEMA=c.TABLE_SCHEMA AND k.TABLE_NAME=c.TABLE_NAME AND tc.CONSTRAINT_TYPE='PRIMARY KEY' AND c.COLUMN_NAME=k.COLUMN_NAME),'PK',null) AS PK, IF(EXISTS(select * FROM information_schema.KEY_COLUMN_USAGE k JOIN information_schema.TABLE_CONSTRAINTS tc ON (k.TABLE_SCHEMA=tc.TABLE_SCHEMA AND k.TABLE_NAME=tc.TABLE_NAME AND k.CONSTRAINT_NAME=tc.CONSTRAINT_NAME) WHERE k.TABLE_SCHEMA=c.TABLE_SCHEMA AND k.TABLE_NAME=c.TABLE_NAME AND tc.CONSTRAINT_TYPE='UNIQUE' AND c.COLUMN_NAME=k.COLUMN_NAME),'UQ',null) AS UQ, IF(EXISTS(select * FROM information_schema.KEY_COLUMN_USAGE k JOIN information_schema.TABLE_CONSTRAINTS tc ON (k.TABLE_SCHEMA=tc.TABLE_SCHEMA AND k.TABLE_NAME=tc.TABLE_NAME AND k.CONSTRAINT_NAME=tc.CONSTRAINT_NAME) WHERE k.TABLE_SCHEMA=c.TABLE_SCHEMA AND k.TABLE_NAME=c.TABLE_NAME AND tc.CONSTRAINT_TYPE='FOREIGN KEY' AND c.COLUMN_NAME=k.COLUMN_NAME),'FK',null) AS FK, c.EXTRA, c.IS_NULLABLE, c.DATA_TYPE, c.COLUMN_TYPE, c.CHARACTER_MAXIMUM_LENGTH, c.COLUMN_COMMENT, k.REFERENCED_TABLE_SCHEMA, k.REFERENCED_TABLE_NAME, k.REFERENCED_COLUMN_NAME FROM information_schema.COLUMNS c LEFT JOIN information_schema.KEY_COLUMN_USAGE k ON (k.TABLE_SCHEMA=c.TABLE_SCHEMA AND k.TABLE_NAME=c.TABLE_NAME AND k.COLUMN_NAME=c.COLUMN_NAME AND k.POSITION_IN_UNIQUE_CONSTRAINT IS NOT NULL) WHERE c.TABLE_SCHEMA='PHPDAO' AND c.TABLE_NAME='employees';

Men jeg tror, ​​der skal være en enklere løsning.




  1. Hvordan konfigurerer jeg vores MySQL ReplicationDriver til vores JBoss 7-datakilde?

  2. Sådan opretter du forbindelse til en database ved hjælp af Workbench MySQL-klienten

  3. Hvordan foreslår du unikke brugernavne til brugere i PHP?

  4. Er der en begrænsning for længden af ​​forespørgslen i mysql?