Comment vérifier si un élément existe déjà dans une table sous sqlite3 de python ?

Published: 27 septembre 2014

DMCA.com Protection Status

Pour vérifier si un élément existe déjà dans une table sous sqlite3, il existe plusieurs possibilités (voir la très bonne réponse sur stackoverflow: How to check the existence of a row in SQLite with Python?). Le plus simple est d'utiliser la fonction fetchall, comme ceci:

QueryCurs.execute("Select * from Clients where Ville = 'Fourmies' ")
if len( QueryCurs.fetchall() ) == 0:
    print "Existe: Oui"
else:
    print "Existe: Non"

Exemple complet en partant du précédent article:

import sqlite3

CreateDataBase = sqlite3.connect('MyDataBase.db')

QueryCurs = CreateDataBase.cursor()

def CreateTable():
    QueryCurs.execute('''CREATE TABLE Clients
    (id INTEGER PRIMARY KEY, Nom TEXT,Rue TEXT,Ville TEXT, Region TEXT, Note REAL)''')

def AddEntry(Nom,Rue,Ville,Region,Note):
    QueryCurs.execute('''INSERT INTO Clients (Nom,Rue,Ville,Region,Note)
    VALUES (?,?,?,?,?)''',(Nom,Rue,Ville,Region,Note))

CreateTable()

AddEntry('Toto','Rue 1','Lille','Nord',105.2)
AddEntry('Bill','Rue 2','Fourmies','Nord',105.2)
AddEntry('Ben','Rue 3','Lille','Nord',105.2)
AddEntry('Paul','Rue 4','Lille','Nord',105.2)

CreateDataBase.commit()

QueryCurs.execute('SELECT * FROM Clients')

for i in QueryCurs:
    print "\n"
    for j in i:
        print j

#----- check the existence of a row:

print '----------'
print "check the existence of a row:"
print ' '


QueryCurs.execute("Select * from Clients where Ville = 'Fourmies' ")
if len( QueryCurs.fetchall() ) == 0:
    print "Ville Fourmies Existe: Non"
else:
    print "Ville Fourmies Existe: Oui"

QueryCurs.execute("Select * from Clients where Ville = 'Lyon' ")
if len( QueryCurs.fetchall() ) == 0:
    print "Ville Lyon Existe: Non"
else:
    print "Ville Lyon Existe: Oui"

QueryCurs.close()

donne ici

1
Toto
Rue 1
Lille
Nord
105.2


2
Bill
Rue 2
Fourmies
Nord
105.2


3
Ben
Rue 3
Lille
Nord
105.2


4
Paul
Rue 4
Lille
Nord
105.2

----------
check the existence of a row:

Ville Fourmies Existe: Oui
Ville Lyon Existe: Non

Recherches associées