Федеративная таблица mySql не может обновить столбцы больших двоичных объектов

У меня есть федеративная таблица на mySQL dbForge 6.0.265, которую я создал следующим образом:

USE my_db;
CREATE TABLE my_db.federated_tbl_resources (
  Id int(11) NOT NULL AUTO_INCREMENT,
  resourceType varchar(255) NOT NULL,
  cultureCode varchar(10) NOT NULL,
  resourceKey varchar(128) NOT NULL,
  resourceValue longtext NOT NULL,
  PRIMARY KEY (Id),
  UNIQUE INDEX UK_tbl_string_resources (cultureCode, resourceKey, resourceType)
)
ENGINE=FEDERATED
AUTO_INCREMENT = 27339
AVG_ROW_LENGTH = 219
CHARACTER SET utf8
CONNECTION='connection_string'
COLLATE utf8_general_ci;
All the select queries work great.

Все работает хорошо, за исключением того, что команда UPDATE не работает в столбце resourceValue.

Выходные данные запроса на обновление показывают, что он был выполнен успешно, но значение остается неизменным.

После долгих поисков я обнаружил этот соответствующий пост и эта официальная ошибка mysql, которая существует с 2008 и был благополучно проигнорирован, что препятствует обновлению столбцов больших двоичных объектов (одним из них является LONGTEXT).

Кто-нибудь когда-либо сталкивался с этим, и есть ли трюк, чтобы обойти это ограничение mysql?

Спасибо


person Nick    schedule 14.10.2013    source источник
comment
Это пустыня там в отношении этой проблемы. Мне пришлось изменить длинный текст на varchar (21345) в целевой и исходной базе данных, чтобы все заработало. (21345 — максимально допустимый размер в байтах). Теперь он работает хорошо, но все еще любопытен этот баг.   -  person Nick    schedule 15.10.2013


Ответы (1)


Обходной путь заключается в том, чтобы сначала обновить ячейку до NULL или до пустой строки (''), а затем снова обновить ее.

person Poul Kruijt    schedule 16.12.2013