我知道如何逃避撇号。问题是不同的。如何在Workbench向导的步骤中使用手动转义的撇号添加数据?
我有同样的问题 SQL Server to Mysql migration (using Mysql Workbench) data transfer error
如何手动将转义添加到撇号('),然后在DATA MIGRATION的工作台向导中运行最后一步?
我的错误不同: 语句执行失败:您的SQL语法出错;查看与您的MySQL服务器版本对应的手册 使用附近的Homestead',' Regina Murphy'销售代表' 707牛津路',' ;安娜堡''在第1行:
INSERT INTO `Northwind`.`Suppliers` (`SupplierID`, `CompanyName`, `ContactName`, `ContactTitle`, `Address`, `City`, `Region`, `PostalCode`, `Country`, `Phone`, `Fax`, `HomePage`)
VALUES
(3,'Grandma Kelly's Homestead','Regina Murphy','Sales Representative','707 Oxford Rd.','Ann Arbor','MI','48104','USA','(313) 555-5735','(313) 555-3349',NULL),
它看起来像撇号和#34;凯利"产生问题。
答案 0 :(得分:1)
我正在处理同样的问题。据我所知,你需要运行
Replace(string_column, '''', '''''');
或
Replace(string_column, '''', '&apos');
导入前在源数据库上。有可能将它作为导入脚本的一部分运行,我不确定。我的脚本编写能力有限。
编辑:
这在MSSQL服务器上对我有用:
BEGIN TRANSACTION;
UPDATE [dbo].[Table]
SET Field = REPLACE(Field, '''', '''''');
COMMIT TRANSACTION;
答案 1 :(得分:0)
这是Milosz Bodzek的答案。
我只是重新制定了它。
看起来唯一现有的选择是复制数据库 - >在此数据库中进行更改(转义字符串) - >使用工作台向导执行迁移。
答案 2 :(得分:0)
这是MySQL Workbench(版本6.3.8)中的错误。这是错误页面:http://bugs.mysql.com/bug.php?id=83616
编辑:
事实证明,在Workbench中使用迁移向导进行迁移时,如果源列中的字符串(可能是text或varchar)中包含撇号字符,则会出现该错误,因为Workbench不会转义撇号。
我遇到了同样的问题并使用了Topplestack's workaround。我还在迁移后将MySQL替换为撇号,以避免更改源数据。
编辑2:
他们已经在MySQL Workbech 6.3.9中修复了它。这是来自bug fixes part of the changelog:
的条目
- 在表的文本字段中使用单引号(')会导致MySQL架构传输向导失败。 (Bug#24978403,Bug#83616)