Partage
  • Partager sur Facebook
  • Partager sur Twitter

DB Browser for SQLite et clé etrangere

    19 septembre 2017 à 17:36:59

    Salut à tous ;)

    Je fais appel à vous car je rencontre un soucis lors de la création d'une clé secondaire avec l'outil DB Browser for SQLite. :euh:
    J'ai une Table Departement et une Table Zone. Les départements sont répartis selon différentes zones.

    Ainsi je souhaite pouvoir lier ces tables avec une clé étrangère.

    Pour cela, j'indique qu'une clé secondaire va assurer ce lien entre les deux tables

    http://hpics.li/2ae455b

    Mais j'obtiens une erreur m'indiquant que je tente de renommer une colonne.

    http://hpics.li/d3c4336

    Par contre quand je pars de ma Table Zone pour lui indiquer qu'elle va avoir une clé étrangère venant de la Table Département, là ça marche...Pourquoi?!

    J'ai regardé de ce côté là : https://sqlite.org/foreignkeys.html

    Merci à vous =)

    UP

    Re à tous ;)

    J'ai indiqué en requête également :  

    PRAGMA foreign_keys = ON;

    J'avais testé cette requête là pour insérer une clé étrangère, mais ça ne fonctionne pas car SQLite ne supporte pas ADD CONSTRAINT

    ALTER TABLE T_Departement ADD CONSTRAINT FK_T_Departement_ID_Zone FOREIGN KEY (ID_Zone) REFERENCES T_Zone(ID_Zone);


    Devrais-je faire ainsi :

    CREATE TABLE `T_Zone` (
    	`ID_Zone`	INTEGER PRIMARY KEY AUTOINCREMENT,
    	`Nom_Zone`	TEXT,
    	FOREIGN KEY(`ID_Zone`) REFERENCES `T_Departement`(`ID_Departement`)
    );

    Puis ajouter un champ : ID_Zone sur la table T_Departement

    CREATE TABLE `T_Departement` (
    	`ID_Departement`	INTEGER PRIMARY KEY AUTOINCREMENT,
    	`Numero`	INTEGER,
    	`Nom`	TEXT,
    	`ID_Zone`	INTEGER,
    	FOREIGN KEY(`ID_Zone`) REFERENCES `T_Zone`(`ID_Zone`)
    );

    Merci  ;)

    -
    Edité par Petitevache 20 septembre 2017 à 11:43:17

    • Partager sur Facebook
    • Partager sur Twitter

    DB Browser for SQLite et clé etrangere

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown