IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQLite Discussion :

Problème trigger SQLite sous Android


Sujet :

SQLite

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 25
    Par défaut Problème trigger SQLite sous Android
    Bonjour,

    je voudrais mettre des contraintes de clés étrangères dans ma base de données. J'ai vu que le mieux c'est de créer des triggers. J'ai testé la commande PRAGMA foreign_keys = ON; mais ça n'active pas le support des clés étrangères dans ma base de données SQLite sous Android.

    Pour faire simple, j'ai par exemple deux tables : Entreprise et Employe. Employe qui possède en clé étrangère l'identifiant de la table Entreprise. Avant d'insérer un employé, je voudrais que le trigger contrôle si l'entreprise existe dans la table Entreprise. Quelle est la syntaxe de cette requête?

    Merci d'avance, bonne journée !

  2. #2
    Membre émérite
    Homme Profil pro
    Chef de projets retraité
    Inscrit en
    Juillet 2011
    Messages
    474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Chef de projets retraité
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 474
    Par défaut
    Bonjour,

    Pour forcer une contrainte sur clé externe, il faut que la colonne contrainte ne puisse pas être null.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    pragma foreign_keys  = true;
     
    CREATE TABLE [entreprise]
    ([IdEnt] INTEGER NOT NULL PRIMARY KEY,
    [Noment] TEXT NULL);
     
    CREATE TABLE [Employe] 
    ([Idemp] INTEGER NOT NULL PRIMARY KEY,
    [Nomemp] TEXT NULL,
    [Ent] INTEGER  not null references entreprise (ident) on delete cascade);
    Sur l'insertion suivante (les deux tables vides)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    insert into employe (idemp, nomemp, ent) values(1, 'Test', 1);
    on obtient:
    Erreur d'exécution SQL 19 foreign key constraint failed
    A vérifier si sur Android, Sqlite active bien les clés étrangères....

    Cordialement

Discussions similaires

  1. Problème avec SQLite sous Android
    Par tulipe_rose dans le forum Android
    Réponses: 1
    Dernier message: 08/08/2014, 13h51
  2. creation de base données sqlite sous android
    Par alex2011 dans le forum Android
    Réponses: 0
    Dernier message: 29/03/2011, 19h29
  3. creation de base données sqlite sous android
    Par alex2011 dans le forum Android
    Réponses: 2
    Dernier message: 28/03/2011, 17h41
  4. exeptions Sqlite sous Android
    Par Jcpan dans le forum Android
    Réponses: 1
    Dernier message: 11/10/2010, 13h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo