import sqlite3
# set database variables
sqlite_db_filename = '/samba/anonymous/vacuum_control.sqlite'
table_name = 'user_recipe'
new_field_1 = 'recipe_id'
field_type_1 = 'INTEGER PRIMARY KEY'
new_field_2 = 'recipe_name'
field_type_2 = 'TEXT'
new_field_3 = 'use_vacuum'
field_type_3 = 'INTEGER'
# Connecting to the database file
conn = sqlite3.connect(sqlite_db_filename)
c = conn.cursor()
# Creating a new SQLite table with x columns
c.execute('CREATE TABLE {tn} ({nf1} {ft1} {nf2} {ft2})'\
.format(tn=table_name, nf1=new_field_1, ft1=field_type_1, nf2=new_field_2, ft2=field_type_2))
# Committing changes and closing the connection to the database file
conn.commit()
QUESTION
The current code produces the error
"Traceback (most recent call last):
File "data_base_config.py", line 20, in <module>
.format(tn=table_name, nf1=new_field_1, ft1=field_type_1, nf2=new_field_2, ft2=field_type_2))
sqlite3.OperationalError: near "recipe_name": syntax error"
If I change field_type_1 to just "INTEGER" it works fine. I've looked at many other examples and it seems valid to include INTEGER PRIMARY KEY
SQLite version 3.8.7.1
Thanks
Aucun commentaire:
Enregistrer un commentaire