Présentation des tables strictes
Les tables strictes dans SQLite sont une fonctionnalité qui permet d'appliquer une typage rigide, empêchant ainsi les erreurs de type lors de l'insertion ou de la mise à jour de données. Pour créer une table stricte, il suffit d'ajouter le mot-clé STRICT à la fin de la définition de la table.
CREATE TABLE people (name TEXT) STRICT;
Avantages des tables strictes
Les tables strictes présentent plusieurs avantages, notamment la prévention des erreurs de type lors de l'insertion ou de la mise à jour de données. Par exemple, si vous essayez d'insérer du texte dans une colonne de type INTEGER, SQLite vous empêchera de le faire si la table est stricte.
CREATE TABLE people_strict (age INTEGER) STRICT;
INSERT INTO people_strict (age) VALUES ('garbage');
-- => erreur : cannot store TEXT value in INTEGER column
Les tables strictes permettent également de prévenir les erreurs de type lors de la création de tables. Par exemple, si vous essayez de créer une colonne avec un type de données non valide, SQLite vous empêchera de le faire si la table est stricte.
CREATE TABLE tbl (name GARBAGE) STRICT;
-- => erreur
Inconvénients des tables strictes
Les tables strictes présentent également quelques inconvénients. Par exemple, il n'est pas possible de modifier une table existante pour la rendre stricte. Il faut créer une nouvelle table stricte et copier les données de l'ancienne table dans la nouvelle.
CREATE TABLE new_people (name TEXT) STRICT;
INSERT INTO new_people SELECT * FROM people;
DROP TABLE people;
ALTER TABLE new_people RENAME TO people;
Conclusion
En conclusion, les tables strictes dans SQLite sont une fonctionnalité utile qui permet de prévenir les erreurs de type et d'améliorer la sécurité des données. Bien qu'elles présentent quelques inconvénients, les avantages des tables strictes l'emportent sur les inconvénients.