[英]how to insert null value in sqlite3 with python
我在sqlite3中創建了一個表,以下是結構:
cid name type notnull pk
0 wheelId INTEGER 1 1
1 wheelName VARCHAR 1 0
2 paraDiam INTEGER 0 0
3 paraWidth FLOAT 0 0
4 paraEt FLOAT 0 0
5 paraHole INTEGER 0 0
6 factParaHole INTEGER 0 0
7 paraCenterhole FLOAT 0 0
8 wheelColorName VARCHAR 0 0
9 wheelColorNameShow TEXT 0 0
10 paraWeight FLOAT 0 0
11 vpPrice INTEGER 0 0
12 ntStock INTEGER 0 0
13 wheelURL VARCHAR 0 0
14 wheelImg VARCHAR 0 0
15 wheelRank INTEGER 0 0
現在,我使用python在表中插入一條記錄,我只想插入列值'wheelName','wheelImg'並保持其他列為null,(第一個是wheelId
,我希望它可以增加單獨自動)。
我幾乎使用了我在網站上找到的所有方法:
cursor.execute("""INSERT INTO WHEELS (wheelName,wheelImg) VALUES (%s,%s)""" , (WHEELNAME,WHEELIMG))
Python拋出sqlite3.OperationalError: near "%": syntax error
cursor.execute("""INSERT INTO WHEELS(WHEELID,WHEELNAME, PARADIAM, PARAWIDTH, PARAET,PARAHOLE,FACTPARAHOLE, PARACENTERHOLE,WHEELCOLORNAME,WHEELCOLORNAMESHOW,PARAWEIGHT,VPPRICE,NTSTOCK, WHEELURL,WHEELIMG,WHEELRANK) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)""" , (WHEELID, WHEELNAME, PARADIAM, PARAWIDTH, PARAET,PARAHOLE,FACTPARAHOLE, PARACENTERHOLE,WHEELCOLORNAME,WHEELCOLORNAMESHOW,PARAWEIGHT,VPPRICE,NTSTOCK, WHEELURL,WHEELIMG,WHEELRANK))
我把其他值設置為None
如:
PARADIAM = None
PARAWIDTH = None
PARAET = None
PARAHOLE = None
和python再次拋出sqlite3.OperationalError: near "%": syntax error
。
sqlite3
適配器使用?
對於SQL參數,而不是%s
:
cursor.execute("INSERT INTO WHEELS (wheelName,wheelImg) VALUES (?, ?)", (WHEELNAME,WHEELIMG))
您的架構還限制wheelColorNameShow
:
"wheelColorNameShow" TEXT check(typeof("wheelColorNameShow") = 'text')
這意味着它不能再為NULL。 您還必須為該列包含一個值:
cursor.execute('insert into wheels (wheelName,wheelImg,wheelColorNameShow) VALUES (?, ?, ?)', ('test', 'test', 'test'))
成功。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.