【发布时间】:2018-04-29 08:03:43
【问题描述】:
我正在使用 MySQL 8.0.4 (rc4) 我需要 MySQL 8,因为它是唯一支持 CTE 的 MySQL 版本。
我的数据库是这样创建的:
CREATE DATABASE IF NOT EXISTS TestDB
DEFAULT CHARACTER SET utf8mb4
DEFAULT COLLATE utf8mb4_general_ci;
USE TestDB;
SET sql_mode = 'STRICT_TRANS_TABLES';
CREATE TABLE IF NOT EXISTS MyTable (
(...)
Body LONGBLOB NOT NULL,
(...)
);
当我尝试将原始字节数据插入此描述字段时,我收到此错误:
Error 1366: Incorrect string value: '\x8B\x08\x00\x00\x00\x00...' for column 'Body' at row 1。
这是我正在使用的插入语句。
REPLACE INTO MyTable
SELECT Candidate.* FROM
(SELECT :Id AS Id,
(...)
:Body AS Body,
(...)
) AS Candidate
LEFT JOIN MyTable ON Candidate.Id = MyTable.Id
WHERE (
(...)
);
BLOB 的字符串值怎么可能不正确? BLOB 不是意味着我可以插入任何内容吗?
【问题讨论】:
-
你能发布示例插入语句吗?
-
刚刚添加了我正在使用的插入语句。