J'ai une table définie par l'instruction SQL suivante:Contrainte de vérification SQLite conditionnelle?
CREATE TABLE test (
id integer PRIMARY KEY NOT NULL UNIQUE,
status text NOT NULL,
enddate date,
/* Checks */
CHECK (status IN ("Current", "Complete"))
);
Je voudrais ajouter une contrainte qui nécessite enddate
être non nulle si lestatus
est « complète ».
Est-ce possible? J'utilise SQLite v3.6.16.
Merci, cela fonctionne. Est-ce le seul moyen? À l'avenir, je pourrais avoir un plus grand nombre de statuts et le chèque pourrait devenir assez important. – Rezzie
Lorsque les contraintes deviennent très complexes, l'approche consiste généralement à placer une couche devant la table pour l'appliquer. Comme une couche de procédure stockée ou une bibliothèque d'accès aux données. – Andomar
Merci pour le conseil. – Rezzie