Maison >base de données >tutoriel mysql >Pourquoi les contraintes de clé étrangère SQLite3 doivent-elles être activées explicitement ?

Pourquoi les contraintes de clé étrangère SQLite3 doivent-elles être activées explicitement ?

DDD
DDDoriginal
2025-01-05 00:38:40881parcourir

Why Do SQLite3 Foreign Key Constraints Need to Be Enabled Explicitly?

Contraintes de clé étrangère SQLite3

Lors de l'utilisation de SQLite3, vous pouvez rencontrer un problème où des lignes peuvent être insérées dans une table enfant même lorsque la table parent le tableau est vide. Ce comportement est dû au comportement par défaut de SQLite3, où les contraintes de clé étrangère sont désactivées lors de la connexion.

Pour activer les contraintes de clé étrangère dans SQLite3, exécutez la requête suivante à chaque fois que vous vous connectez à la base de données :

PRAGMA foreign_keys = ON;

La raison de répéter cette commande à chaque fois est de maintenir la compatibilité avec SQLite version 2.x. Par défaut, SQLite3 se comporte comme SQLite 2.x, qui ignore les contraintes de clé étrangère.

Dans SQLite version 4.x, cependant, les contraintes de clé étrangère seront activées par défaut, résolvant ce problème de manière permanente.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn