1
我將MSD數據庫中的md5哈希值存儲爲二進制文件(16)。我需要使用pymssql插入幾千個值,如果我用cursor.execute()
而不是cursor.executemany()
逐個插入值,則該值非常慢。 但問題是,我不能插入二進制數據,因爲executemany把我的MD5哈希值的列表,並把它作爲一個字符串...用executemany插入二進制文件(16)
我插線看起來是這樣的:
# generated from hashlib.md5('somestring').hexdigest()
md5list = ['9e107d9d372bb6826bd81d3542a419d6', 'e4d909c290d0fb1ca068ffaddf22cbd0']
# query should look like this: insert into hashes (md5) values (0x9e107d9d372bb6826bd81d3542a419d6)
cursor.executemany("insert into hashes (md5) values (0x%s)", md5list)
# now we have a query like: insert into hashes (md5) values (0x'9e107d9d372bb6826bd81d3542a419d6')
有一種用executemany插入哈希的方法?
問題不是0x,但pymssql假定這是一個字符串類型,並將「」添加到它。當我嘗試插入'0x ...'它根本不工作,因爲mssql不想要一個字符串... – reox
@reox,好的。我更新了答案。 – falsetru
好吧,對不起,我編輯了你的答案,但那也是錯誤的......你不能在pymssql中使用%x,並且%s總是將它放入''中。 :(和字符串不工作與mssql – reox