Échec création de la table SQL spip_codes_postaux en SQLite
Erreur HY000 / 1 de sqlite3: near "COMMENT": syntax error
~ecrire/base/create.php L82 [sql_create(),creer_ou_upgrader_table(),alterer_base(),creer_base(),admin_repair_tables(),base_repair_dist(),inc_admin_dist(),exec_base_repair_dist()]
À cause de la présence de COMMENT dans la déclaration des champs tel que
"id_code_postal"=> "bigint(21) NOT NULL COMMENT 'Identifiant du code Postal'",
Note: En MySQL cet élément existe effectivement
https://dev.mysql.com/doc/refman/8.4/en/create-table.html
A comment for a column can be specified with the COMMENT option, up to 1024 characters long. The comment is displayed by the SHOW CREATE TABLE and SHOW FULL COLUMNS statements. It is also shown in the COLUMN_COMMENT column of the Information Schema COLUMNS table.
En SQLite, les commentaires avec -- ou /* ... */ sont totalement conservés lors de la création de la table, de sorte qu’ils sont renvoyés via .schema par exemple
Cette syntaxe fonctionne par exemple :
CREATE TABLE User
-- A table comment
(
uid INTEGER, -- A field comment
flags INTEGER -- Another field comment
);
Mais attention, il ne faut pas de virgule sur le dernier champ.
On aurait pu tenter de remplacer (dans SPIP / sqlite) COMMENT automatiquement par -- mais il faut qu’ils soient absolument après les virgules, et donc pas pour le dernier champ…