En utilisant SQLite3 avec le schéma suivant:sortie de foreign_key_list de pragma du SQLite
CREATE TABLE Customers(ID INTEGER PRIMARY KEY, Company TEXT NOT NULL UNIQUE, Country TEXT NOT NULL, City TEXT NOT NULL);
CREATE TABLE Orders(ID INTEGER PRIMARY KEY, CustomerID INTEGER NOT NULL, FOREIGN KEY(CustomerID) REFERENCES Customers(ID) ON DELETE RESTRICT ON UPDATE RESTRICT);
et cette commande:
PRAGMA foreign_key_list(Orders);
résultats dans la sortie suivante:
0|0|Customers|CustomerID|ID|RESTRICT|RESTRICT|NONE
Comme le documentation ne dit rien sur le sens de la sortie de ce pragma, en dehors de l'évidence (clients - Table des parents, CustomerID - clé enfant, ID - clé parent, RESTREINT - ON SUPPRIMER et le second RESTREINT - ON UPDATE) Je présume que AUCUN coresponds à la clause MATCH non prise en charge.
La chose que je ne peux pas comprendre par moi-même est la signification des deux premiers zéros. Quelqu'un pourrait-il me dire ce que c'est?
Les deux premiers sont 'id' et' seq'. 'id' représente un identifiant unique pour une clé étrangère dans une table. S'il y a plusieurs clés étrangères, 'id' sera 0, 1, ... – kuro
' seq' est le numéro de séquence de la colonne pour la clé. Il est utilisé pour muti colonne clé étrangère – kuro
@kuro S'il vous plaît écrivez cela comme une réponse. –