SQlite + Python: Problème de "CREATE TABLE IF NOT EXISTS"

SQlite + Python: Problème de "CREATE TABLE IF NOT EXISTS" - SQL/NoSQL - Programmation

Marsh Posté le 07-03-2007 à 13:53:41    

Bonjour à tous,

 

J'ai besoin de vos lumières.

 

J'utilise le SQlite sous Python (pysqlite).

 

Tout marche, sauf un truc: je n'arrive pas à utiliser l'option "IF NOT EXISTS"

 

Je lance un script, et je veux écrire la table si elle n'existe pas. Et sinon rien.

 

Comme expliqué dans la doc, y'a l'option "IF NOT EXISTS" :
http://www.sqlite.org/lang_createtable.html

 

CREATE [TEMP | TEMPORARY] TABLE [IF NOT EXISTS] [database-name .] table-name (
    column-def [, column-def]*
    [, constraint]*
)

 


Mais dans mon script, ça ne marche pas. :(

Code :
  1. from pysqlite2 import dbapi2 as sqlite
  2. con = sqlite.connect('database.db', isolation_level=None)
  3. cur = con.cursor()
  4. cur.execute("""CREATE TABLE IF NOT EXISTS table1 (id VARCHAR(20) PRIMARY KEY, fruit VARCHAR(30));""" )
 

Ca coince:
Traceback (most recent call last):
  File "ifnot.py", line 4, in ?
    cur.execute("""CREATE TABLE IF NOT EXISTS table1 (id VARCHAR(20) PRIMARY KEY, fruit VARCHAR(30));""" )
pysqlite2.dbapi2.OperationalError: near "NOT": syntax error

 


Code :
  1. from pysqlite2 import dbapi2 as sqlite
  2. con = sqlite.connect('database.db', isolation_level=None)
  3. cur = con.cursor()
  4. cur.execute("""CREATE TABLE table1 (id VARCHAR(20) PRIMARY KEY, fruit VARCHAR(30));""" )


Et sans le "IF NOT EXISTS", ça passe sans problème.

 


Google ne me donne rien. :/


Message édité par Rasthor le 07-03-2007 à 13:53:56
Reply

Marsh Posté le 07-03-2007 à 13:53:41   

Reply

Marsh Posté le 11-03-2007 à 13:05:36    

up...

Reply

Marsh Posté le 16-03-2007 à 17:09:14    

Up encore...
 
Personne n'utilise SQLite et python ? :??:

Reply

Marsh Posté le 16-03-2007 à 17:16:42    

pas la bonne doc, utilise la doc de la v2

Reply

Marsh Posté le 19-03-2007 à 11:29:36    

C'est peut-être un problème de version:
https://develop.participatorycultur [...] icket/5939
 
Je vais installer la 3.3.0 pour essayer...

Reply

Marsh Posté le 19-03-2007 à 11:58:29    

bah c'est évident

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed