Mysql - Sentencia para crear base de datos si no existe
Según la documentación oficial esta es la estructura:
CREATE DATABASE [IF NOT EXISTS] database_name
[CHARACTER SET charset_name]
[COLLATE collation_name]
Yo uso estas dos formas:
-- DROP DATABASE `nombre_de_bd`;
-- 1 mysql-old
CREATE DATABASE IF NOT EXISTS `nombre_de_bd` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci*/;
-- 2
CREATE DATABASE IF NOT EXISTS `nombre_de_bd` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
-- 3
USE `nombre_de_bd`
Preferiblemente la número dos por simpleza.
/*!40100...*/, sentencia 1, significa que las versiones de mysql 4.1.0 o posteriores podrán interpretar esta instrucción. Luego, si ejecutas 2
en una bd menor a la 4.1 daría error.
La codificación
Es un caso peculiar de mysql. Lo que en otros sistemas se asume que el utf8 a secas es el estandar universal de codificación, aqui no.
utf8 es una codificación de caracteres propietarios.
En pocas palabras. utf8mb4 es el equivalente de mysql (mariadb) al utf8 universal.
- utf8: cada caracter se codifíca en 1 byte en mysql. En otros motores o tecnologías se usan 4 bytes
- utf8mb4: cada caracter se codifica en 4 bytes
Autor: Eduardo A. F.
Publicado: 27-03-2021 19:23
Actualizado: 09-05-2021 13:20