Comment définir correctement INCREMENT AUTO pour une colonne dans SQLite, en utilisant Python?
J'ai essayé avec le code ci-dessous:
import sqlite3
data_person_name = [('Michael', 'Fox'),
('Adam', 'Miller'),
('Andrew', 'Peck'),
('James', 'Shroyer'),
('Eric', 'Burger')]
con = sqlite3.connect(":memory:")
c = con.cursor()
c.execute('''CREATE TABLE q1_person_name
(name_id integer auto_increment primary key,
first_name varchar(20) NOT NULL,
last_name varchar(20) NOT NULL)''')
c.executemany('INSERT INTO q1_person_name VALUES (?,?,?)', data_person_name)
for row in c.execute('SELECT * FROM q1_person_name'):
print row
Quelqu'un peut-il m'aider dans la prise de name_id
automatiquement incrémenté ?
source d'informationauteur Avi
Vous devez vous connecter pour publier un commentaire.
Dans SQLite,
INTEGER PRIMARY KEY
colonne auto-incrémentée. Il y a aussi unAUTOINCREMENT
mot-clé. Lorsque utilisé dansINTEGER PRIMARY KEY AUTOINCREMENT
unlégèrement différent de l'algorithme pour l'Id de la création est utilisé.
Ce code fonctionne maintenant OK.
Lors de l'utilisation de l'auto-incrémentation, nous avons à mentionner explicitement les noms de colonne, en omettant le
celui qui est auto-incrémenté.
C'est la sortie de l'exemple de code.
Essayer comme ceci:
Il semble que vous ayez déjà fait. Donc, il n'y a pas besoin de faire référence à ce champ lorsque vous insérez.
Remplacer la première
?
dansexecutemany
déclaration avecnull
.Donc la ligne suivante peut être réécrite:
comme