[英]how to insert null value in sqlite3 with python
I created a table in sqlite3, following is the structure: 我在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
and now, I use python to insert a record into the table, and I only want to insert the column value 'wheelName', 'wheelImg' and keep the other columns null, (the first one is wheelId
, and I hope it can increment by itself automatically). 现在,我使用python在表中插入一条记录,我只想插入列值'wheelName','wheelImg'并保持其他列为null,(第一个是wheelId
,我希望它可以增加单独自动)。
I used almost every method I can find on the website: 我几乎使用了我在网站上找到的所有方法:
cursor.execute("""INSERT INTO WHEELS (wheelName,wheelImg) VALUES (%s,%s)""" , (WHEELNAME,WHEELIMG))
Python throws sqlite3.OperationalError: near "%": syntax error
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))
where I set the other values to None
like: 我把其他值设置为None
如:
PARADIAM = None
PARAWIDTH = None
PARAET = None
PARAHOLE = None
and python again throws sqlite3.OperationalError: near "%": syntax error
. 和python再次抛出sqlite3.OperationalError: near "%": syntax error
。
The sqlite3
adapter uses ?
sqlite3
适配器使用?
for SQL parameters, not %s
: 对于SQL参数,而不是%s
:
cursor.execute("INSERT INTO WHEELS (wheelName,wheelImg) VALUES (?, ?)", (WHEELNAME,WHEELIMG))
Your schema also restricts the wheelColorNameShow
: 您的架构还限制wheelColorNameShow
:
"wheelColorNameShow" TEXT check(typeof("wheelColorNameShow") = 'text')
which means it can no longer be NULL. 这意味着它不能再为NULL。 You have to include a value for that column too: 您还必须为该列包含一个值:
cursor.execute('insert into wheels (wheelName,wheelImg,wheelColorNameShow) VALUES (?, ?, ?)', ('test', 'test', 'test'))
succeeds. 成功。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.