2011-10-01 7 views

risposta

26

Si potrebbe utilizzare SHOW FULL COLUMNS FROM tablename che restituisce una colonna fascicolazione, ad esempio per un tavolo 'conti' con un confronto speciale sulla colonna 'nome'

mysql> SHOW FULL COLUMNS FROM accounts; 
+----------+--------------+-------------------+------+-----+---------+----------+ 
| Field | Type   | Collation   | Null | Key | Default | Extra | 
+----------+--------------+-------------------+------+-----+---------+----------| 
| id  | int(11)  | NULL    | NO | PRI | NULL | auto_inc | 
| name  | varchar(255) | utf8_bin   | YES |  | NULL |   | 
| email | varchar(255) | latin1_swedish_ci | YES |  | NULL |   | 
... 

Oppure si potrebbe usare SHOW CREATE TABLE tablename che si tradurrà in una dichiarazione come

mysql> SHOW CREATE TABLE accounts; 
CREATE TABLE `accounts` (
`id` int(11) NOT NULL AUTO_INCREMENT, 
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, 
`email` varchar(255) DEFAULT NULL, 
... 
+0

FYI, SHOW CREATE TABLE mostra solo il set di colonne e confrontare se diverso ai valori predefiniti di tabella. Inoltre, le impostazioni predefinite della tabella non vengono visualizzate se corrispondono alle impostazioni predefinite del db. – maxhugen

2

SHOW CREATE TABLE nometabella vi mostrerà le regole di confronto di ogni colonna, così come il confronto predefinito

4

Se si desidera che il confronto solo per quella colonna specifici (per un eventuale impiego con una sottoquery) ...

select COLLATION_NAME 
from information_schema.columns 
where TABLE_SCHEMA = 'tableschemaname' 
and TABLE_NAME = 'tablename' 
and COLUMN_NAME = 'fieldname';