0
我正在將文件寫入一個帶有BLOB類型的MySql表。 爲什麼我需要這樣做有各種各樣的原因 - 我不能只使用文件系統。我的SQL BLOB(LONGBLOB)類型損壞我的數據
我發現將文件寫入數據庫,然後從數據庫讀迴文件已損壞。 我可以複製這個使用SQL,沒有別的。 該文件應該很容易放入LONGBLOB中,所以我不認爲數據被截斷。實際上,被讀回的數據大於正在寫入的數據。 我也遇到過與BLOB和MEDIUMBLOB相同的問題。
這裏是SQL:
CREATE TABLE Video(
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ShopAssistant_Id int NOT NULL,
Data LONGBLOB NOT NULL,
FOREIGN KEY (ShopAssistant_Id) REFERENCES ShopAssistant(id)
);
--insert data from a file
insert into video (shopassistant_id, data) values (1, LOAD_FILE('/Users/tmck/temp/introduction.mp4'));
--read data back into a different file
select data into outfile '/Users/tmck/temp/ret.mp4' from Video;
如果我們現在比較文件,ret.mp4比introduction.mp4越大,單個字節已經被更改,並且文件已損壞,將無法播放。 文件本身很小,大約245 KB。
MySql中的'選項'導致它轉換我的數據?
你可以區分這兩個文件並找出確切的區別是什麼嗎? – 2014-09-13 10:20:57
你正在使用哪個引擎? InnoDB的? – luksch 2014-09-13 10:22:50
表的引擎是InnoDB – tpemckiernan 2014-09-13 11:27:04