Dans mysql 5.x Quelle est la différence si je fais quelque chose comme ça:
CREATE TABLE aTable (
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
aNumber bigint(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8;
avec ça:
CREATE TABLE aTable (
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
aNumber bigint(20) DEFAULT NULL
) ENGINE=InnoDB CHARACTER SET=utf8;
Remarquez que je ne spécifie pas le jeu de caractères par défaut dans le premier. Je n'ai rien trouvé dans les documents mysql.
Le mot DEFAULT
y est facultatif - les deux sont donc équivalents, c'est-à-dire qu'ils définissent le jeu de caractères par défaut pour la table.
Voir la documentation MySQL pour CREATE TABLE . Voici le morceau pertinent:
table_option:
ENGINE [=] engine_name
... other options ...
| [DEFAULT] CHARACTER SET [=] charset_name
... more options ...
Vous pouvez le confirmer en utilisant la commande SHOW CREATE TABLE .
Il existe 4 niveaux de paramètres par défaut dans MySQL: serveur, base de données, table et colonne. En utilisant des valeurs par défaut de niveau inférieur, vous pouvez remplacer les valeurs par défaut de levier plus élevées.
Si vous modifiez une table dont le jeu de caractères par défaut est différent de ce que la base de données a défini, la valeur par défaut de la table remplace la valeur par défaut db.