@wiztricks:
Oui, mais sans utiliser le "ON DELETE RESTRICT", j'obtiens une exception lors de la tentative de delete, et antoinev2 non. Ceci avec le même code Python, la même base et le même OS (Windows): il y a autre chose.Citation:
C'est quand même pas si compliqué, non?
@antoinev2:
Ça peut venir d'une différence de Python et de son pilote sqlite3, mais aussi de la version de sqlite3 (le sqlite3.dll qui se trouve dans "C:\Python27\DLLs"). J'ai le Python 2.7.2, et ma version de sqlite3 est la 3.6.21. Voilà comment j'ai obtenu cette dernière:
La prise en compte de "foreign key" est assez récente. Selon la version que tu as, regarde ici ce que ta version ne fait pas par rapport à la mienne: http://www.sqlite.org/news.html et "Old news" en fin de page.Code:
1
2 cur.execute("SELECT sqlite_version();") print cur.fetchone()[0]
Si la différence entre nous est expliquée par la différence de version et que tu ne peux pas moderniser ton Python, il faudra essayer le "ON DELETE DISTRICT" comme wiztricks le propose.