Pourquoi la contrainte de clé étrangère suivante (bien qu'elle s'exécute correctement) n'est pas appliquée par SQLite? Comment puis-je aller à l'application de la relation?La clé étrangère n'est pas appliquée
CREATE TABLE User (
UserID TEXT Unique NOT NULL PRIMARY KEY,
FirstName TEXT NOT NULL,
LastName TEXT NOT NULL,
Username TEXT NOT NULL,
Password TEXT NOT NULL,
Email TEXT NOT NULL,
SignupDate TEXT NOT NULL
)
CREATE TABLE Category (
CategoryID TEXT Unique NOT NULL PRIMARY KEY,
UserID TEXT,
FOREIGN KEY(UserID) REFERENCES User(UserID)
)
Merci beaucoup pour la réponse rapide. Je n'ai jamais remarqué ça dans la documentation (ça va paraître plus dur la prochaine fois). Ayant juste essayé d'exécuter cette commande je reçois l'erreur suivante: "SQLite prepare() a échoué ERREUR: autorisation refusée DETAILS: non autorisé EXPRESSION: PRAGMA foreign_keys = ON;" Je suppose que soit la version qu'ils utilisent ne supporte pas ou a eu la fonctionnalité désactivée. Puis-je créer le même résultat final à l'aide de déclencheurs? Si oui, quelqu'un pourrait-il fournir un exemple de syntaxe de déclenchement pour SQLITE? –
@Maxim, je crois que les déclencheurs de clés étrangères sqlite requièrent exactement les mêmes fonctionnalités sous-jacentes que les anciennes clés étrangères (souvent supprimées dans les builds intégrées de sqlite qui veulent être plus petites et plus rapides qu'elles ne veulent offrir une "puissance ACID relationnelle" complète). coûts substantiels de performance et d'encombrement). –