Bonjour/bonsoir,
J'ai un problème comme l'indique le titre, entre une opération d'incrémentation à partir d'un fichier python vers un base de données (SQLite3),
J'ai créer un dbase avec une table de ce type:
Tout ce passe bien sauf pour incrémenter la colonne ID, mon script :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 CREATE TABLE `table_scores` ( `user` TEXT NOT NULL, `score` INTEGER, `id` INTEGER NOT NULL, #Avec ou sans NOT NULL même problème. PRIMARY KEY(`id`) );
Quand je lance, cela me met :
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 #variables path_db_user = '/db/' conn = sqlite3.connect('db/user_db') db_ram = sqlite3.connect(':memory:') c = conn.cursor() last_id = c.lastrowid id = 5 user = 'jean' score = 500 def insert_data(): c.execute("INSERT INTO table_scores VALUES (?,?,?);", ( user, score,(c.lastrowid + 1))) # ICI (pareil avec la variable last_id) conn.commit() c.close() conn.close() insert_data()
Je sais pas lequel des deux valeurs entre c.lastrowid + 1 et ID déconne. (J'ai déjà des valeurs d'enregistrer dans la colonne ID).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 File "pendu.py", line 19, in insert_data c.execute("INSERT INTO table_scores VALUES (?,?,?);", ( user, score, (c.lastrowid + 1))) TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
Si quelqu'un à la solution ou une autre solution, je suis preneur, merci d'avance.
Partager