Los siguientes ejemplos muestran cómo MySQL determina los valores del conjunto de caracteres y colación por defecto.
Ejemplo 1: Definición de tabla y columna
CREATE TABLE t1 ( c1 CHAR(10) CHARACTER SET latin1 COLLATE latin1_german1_ci ) DEFAULT CHARACTER SET latin2 COLLATE latin2_bin;
Aquí tenemos una columna con un conjunto de caracteres
latin1
y una colación
latin1_german1_ci
. La definición es
explícita, así que es sencillo. Debe tenerse en cuenta que no
hay problema al almacenar una columna latin1
en una tabla latin2
.
Ejemplo 2: Definición de tabla y columna
CREATE TABLE t1 ( c1 CHAR(10) CHARACTER SET latin1 ) DEFAULT CHARACTER SET latin1 COLLATE latin1_danish_ci;
Ahora tenemos una columna con un conjunto de caracteres
latin1
y la colación por defecto. Aunque
puede parecer normal, la colación por defecto no es la del
nivel de tabla. En lugar de ello, ya que la colación para
latin1
siempre es
latin1_swedish_ci
, la columna
c1
tiene una colación de
latin1_swedish_ci
(no
latin1_danish_ci
).
Ejemplo 3: Definición de tabla y columna
CREATE TABLE t1 ( c1 CHAR(10) ) DEFAULT CHARACTER SET latin1 COLLATE latin1_danish_ci;
Tenemos una columna con un conjunto de caracteres y colación
por defecto. Bajo esta circunstancia, MySQL busca a nivel de
tabla para determinar el conjunto de caracteres y colación para
la columna. Así, el conjunto de caracteres para la columna
c1
es latin1
y su
colación es latin1_danish_ci
.
Ejemplo 4: Definición de base de datos, tabla y columna
CREATE DATABASE d1 DEFAULT CHARACTER SET latin2 COLLATE latin2_czech_ci; USE d1; CREATE TABLE t1 ( c1 CHAR(10) );
Creamos una columna sin especificar su conjunto de caracteres y
colación. Tampoco especificamos un conjunto de caracteres y
colación a nivel de tabla. En este caso, MySQL busca a nivel de
base de datos para inspirarse. (La configuración de la base de
datos pasa a ser la configuración de la tabla, y posteriormente
la configuración de columna). Así, el conjunto de caracteres
para la columna c1
es
latin2
y su colación es
latin2_czech_ci
.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.