我有一張表。這是創建聲明。將NULL值插入到雙數據類型MySQL Python
CREATE TABLE `runsettings` (
`runnumber` mediumint(9) NOT NULL,
`equipment` varchar(45) NOT NULL,
`wafer` varchar(45) NOT NULL,
`settingname` varchar(100) NOT NULL,
`float8value` double DEFAULT NULL,
`apcrunid` varchar(45) DEFAULT NULL,
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`intvalue` int(11) DEFAULT NULL,
`floatvalue` float DEFAULT NULL,
`Batch` varchar(45) DEFAULT NULL,
`IndexNum` smallint(6) DEFAULT '1',
`stringvalue` mediumtext,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1056989 DEFAULT CHARSET=latin1;
這是我的插入語句:
import mysql.connector
cnx = mysql.connector.connect(user='test',
password ='test',host='0.0.0.1',
database='test')
vallist = [(471285, u'CT19', 7, u'271042', u'Etch Time Min', None, None, None),
(471285, u'CT19', 7, u'00000', u'Etch Time Min', None, None, 'None')]
cursor = cnx.cursor()
# ss =
cursor.executemany("INSERT INTO runsettings (apcrunid,equipment,runnumber,wafer,settingname,intvalue,floatvalue,float8value) VALUES (%s,%s,%s,%s,%s,%s,%s,%s)",vallist)
cnx.commit()
所以我嘗試插入這些值。
vallist = [471285, u'CT19', 7, u'271042', u'Etch Time Min', None, None, None,
471285, u'CT19', 7, u'00000', u'Etch Time Min', None, None, 'None']
這是插入。 結果在DB 但是,當列表值是這個(區別是字符串'None'
第一獲取評估):
vallist = [471285, u'CT19', 7, u'271042', u'Etch Time Min', None, None, 'None',
471285, u'CT19', 7, u'271042', u'Etch Time Min', None, None, None]
它給出了截斷誤差。
Data truncated for column 'float8value' at row 2
爲什麼當包含None
行是第一個列表中它並沒有給出來的一樣截斷誤差第一個列表上?
我很確定這是我正在執行的查詢。它也奇怪,0值插入該列。 – essramos
實際上任何一種方法(準備與否)都會給我在數據庫上的相同結果,所以讓我們使用最新的(未準備好的)。 – essramos