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 :

Requête sql avec Python


Sujet :

SQLite

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur / Enseignant
    Inscrit en
    Février 2012
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur / Enseignant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 115
    Points : 139
    Points
    139
    Par défaut Requête sql avec Python
    Bonjour à tous

    je teste la connexion d'un petit programme python avec ma base SQLite:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    import sqlite3
     
    #########################################################################
    # Définition locale de fonctions :
     
    basDo = sqlite3.connect("mabase.sq3")
    curse = basDo.cursor()
    while 1:
        print("Entrer requete SQL (ou <Enter> pour quitter) :")
        requete = input()
     
        if requete == "":
            break
        try:
            curse.execute(requete)
        except:
            print("*** Requête SQL incorrecte ***")
        else:
            for enreg in curse:
                print(enreg)
        print()
     
     
    #########################################################################
    # Corps principal du programme
     
    choix = input("Confirmez-vous l'enregistrement de l'état actuel (o/n) ? :")
    if choix[0] == "0":
        basDo.commit()
    else:
        basDo.close()
    Je teste mon programme en entrant la requête suivante:

    CREATE TABLE clients (id_client SERIAL, nom VARCHAR(25), prenom VARCHAR(25), CONSTRAINT PRIMARY KEY (id_client))
    j'ai le message d'erreur *** Requête SQL incorrecte ***

    Pouvez-vous me dire ou se trouve mon erreur?

  2. #2
    Membre éprouvé
    Homme Profil pro
    Chef de projets retraité
    Inscrit en
    Juillet 2011
    Messages
    420
    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 : 420
    Points : 1 100
    Points
    1 100
    Par défaut
    Bonjour,

    En fait tu as droit à plusieurs formes mais pas à celle que tu as choisie.
    => Tu devrais afficher le message d’erreur de Sqlite et tu verrais
    near "PRIMARY": syntax error
    1/ Tu peux indiquer ta clé primaire dans les contraintes de colonne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE TABLE clients (id_client SERIAL PRIMARY KEY, nom VARCHAR(25), prenom VARCHAR(25))
    2/ Cela marche aussi si tu donnes un nom à ta contrainte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE TABLE clients (id_client SERIAL, nom VARCHAR(25), prenom VARCHAR(25), CONSTRAINT Pk_Client PRIMARY KEY (id_client))

    3/ Si tu ne donnes pas de nom, tu ne dois pas utiliser le mot "CONSTRAINT"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE TABLE clients (id_client SERIAL, nom VARCHAR(25), prenom VARCHAR(25) , PRIMARY KEY (id_client))
    Voir la doc SQLITE
    http://www.sqlite.org/lang_createtable.html

    Cordialement

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur / Enseignant
    Inscrit en
    Février 2012
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur / Enseignant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 115
    Points : 139
    Points
    139
    Par défaut
    Merci beaucoup pour la réponse et pour le lien.

    Je me basais sur des vieux cours SQL ou justement il était dit que le nom de la contrainte est optionnel.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Chef de projets retraité
    Inscrit en
    Juillet 2011
    Messages
    420
    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 : 420
    Points : 1 100
    Points
    1 100
    Par défaut
    Bonjour,

    J'ai basé mes réponses sur la syntaxe gérée par SQLITE je n'ai pas vérifié si elle ou pas complètement en ligne avec la norme...

    Cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Python 2.X] requêts SQL avec python 2.7
    Par noramokh dans le forum Général Python
    Réponses: 2
    Dernier message: 16/02/2015, 17h08
  2. Requête SQL avec une réponse unique
    Par Glutinus dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/07/2005, 16h35
  3. Problème de requête SQL avec instruction TRANSFORM
    Par Nosper dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 21/06/2005, 16h15
  4. requête SQL avec paramètre en vb avec base de donnée SQL srv
    Par dialydany dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 01/02/2005, 10h33
  5. PB requète SQL avec Interbase
    Par missllyss dans le forum InterBase
    Réponses: 2
    Dernier message: 15/07/2003, 11h37

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