2016-03-20 17 views
0
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() 

SORU

geçerli kod hatayısqlite birincil anahtar tablo hata oluştur

"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" 

üretir. Birçok diğer örneklere bakıp o INTEGER PRIMARY KEY

SQLite sürüm 3.8.7.1

Teşekkür

cevap

2

Sen {FT1} sonra virgül eksik kapsayacak şekilde geçerli görünüyor ettik:

c.execute('CREATE TABLE {tn} ({nf1} {ft1}, {nf2} {ft2})'\ 
+0

Yardımlarınız için teşekkür ederim bu örnek görebilirsiniz –

0

Eminim, sadece birincil anahtar olarak sütunu ayarlamak istiyorsanız, bu sözdizimini kullanmanızı öneriyorum.

# Creating a second table with 1 column and set it as PRIMARY KEY 
    # note that PRIMARY KEY column must consist of unique values! 
    c.execute('CREATE TABLE {tn} ({nf} {ft} PRIMARY KEY)'\ 
      .format(tn=table_name2, nf=new_field, ft=field_type)) 

Sen here

İlgili konular