una - mysql cambiar a utf8mb4
Creando la tabla mysql con el conjunto de caracteres predeterminado explícito, ¿qué pasa si no lo hago? (2)
En mysql 5.x ¿Cuál es la diferencia si hago algo como esto:
CREATE TABLE aTable (
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
aNumber bigint(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8;
con este:
CREATE TABLE aTable (
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
aNumber bigint(20) DEFAULT NULL
) ENGINE=InnoDB CHARACTER SET=utf8;
Note que no estoy especificando el conjunto de caracteres por defecto en el primero. No pude encontrar nada en los documentos mysql.
Hay 4 niveles de configuración predeterminada en MySQL: servidor, base de datos, tabla y columna. Al utilizar los valores predeterminados de nivel inferior, puede anular los valores predeterminados de palanca más altos.
Si modifica una tabla que tiene un conjunto de caracteres predeterminado establecido en algo diferente a lo que la base de datos ha establecido, la tabla predeterminada anulará la predeterminada de db.
La palabra DEFAULT
es opcional allí, por lo que los dos son equivalentes, es decir, establecen el conjunto de caracteres predeterminado para la tabla.
Consulte la documentación de MySQL para CREAR TABLA . Aquí está el bit relevante:
table_option:
ENGINE [=] engine_name
... other options ...
| [DEFAULT] CHARACTER SET [=] charset_name
... more options ...
Puedes confirmarlo usando el comando SHOW CREATE TABLE .