2014-09-25 111 views
0

在sqlite控制檯中,我們可以插入null簡單。如何用python-sqlite3在表中插入null?

create table data(code TEXT,date DATETIME) 
insert into data values("x1","20010101"); 
insert into data values("x2",null); 

如何用python-sqlite3插入null?

import sqlite3 
db = r'F:\test.sqlite' 
con = sqlite3.connect(db) 
cur = con.cursor() 
cur.execute('create table data(code TEXT,date DATETIME)') 
record1=('x1','2001-01-01') 
cur.execute('INSERT INTO data VALUES(?,?);',record1) 
record2=('x2','NULL') 
cur.execute('INSERT INTO data VALUES(?,?);',record2) 
record3=('x2','null') 
cur.execute('INSERT INTO data VALUES(?,?);',record3) 
record4=('x4',null) 
cur.execute('INSERT INTO data VALUES(?,?);',record4) 
record5=('x5',NULL) 
cur.execute('INSERT INTO data VALUES(?,?);',record5) 
con.commit() 

cur.execute('INSERT INTO data VALUES(?,?);',record2)插入的NULL字符串轉換成表,而不是空。
cur.execute('INSERT INTO data VALUES(?,?);',record3)向表中插入字符串null,不爲空。 (INSERT INTO data VALUES(?,?);',record4)或cur.execute('INSERT INTO data VALUES(?,?);',record5)可以將null插入到表數據。

我怎樣才能在python-sqlite3中插入null表?

回答

6

documentation說:

以下Python類型可因此被髮送而沒有任何問題的SQLite:

Python type SQLite type 
None    NULL 
... 
+0

記錄=( 'X',無) cur.execute( 'INSERT INTO data VALUES(?,?);',record) – luofeiyu 2014-09-25 23:19:04