Вопрос

Я получаю сообщение об ошибке mysql:

#обновить (ActiveRecord::StatementInvalid) "Mysql:: Ошибка:#HY000Got ошибка 139 из механизма хранения:

При попытке обновить текстовое поле в записи строкой длиной 1429 символов, есть идеи о том, как устранить проблему?

Ниже приведена трассировка стека.

from /var/www/releases/20081002155111/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:147:in `log'
from /var/www/releases/20081002155111/vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb:299:in `execute'
from /var/www/releases/20081002155111/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:167:in `update_sql'
from /var/www/releases/20081002155111/vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb:314:in `update_sql'
from /var/www/releases/20081002155111/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:49:in `update_without_query_dirty'
from /var/www/releases/20081002155111/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:19:in `update'
from /var/www/releases/20081002155111/vendor/rails/activerecord/lib/active_record/base.rb:2481:in `update_without_lock'
from /var/www/releases/20081002155111/vendor/rails/activerecord/lib/active_record/locking/optimistic.rb:70:in `update_without_dirty'
from /var/www/releases/20081002155111/vendor/rails/activerecord/lib/active_record/dirty.rb:137:in `update_without_callbacks'
from /var/www/releases/20081002155111/vendor/rails/activerecord/lib/active_record/callbacks.rb:234:in `update_without_timestamps'
from /var/www/releases/20081002155111/vendor/rails/activerecord/lib/active_record/timestamp.rb:38:in `update'
from /var/www/releases/20081002155111/vendor/rails/activerecord/lib/active_record/base.rb:2472:in `create_or_update_without_callbacks'
from /var/www/releases/20081002155111/vendor/rails/activerecord/lib/active_record/callbacks.rb:207:in `create_or_update'
from /var/www/releases/20081002155111/vendor/rails/activerecord/lib/active_record/base.rb:2200:in `save_without_validation'
from /var/www/releases/20081002155111/vendor/rails/activerecord/lib/active_record/validations.rb:901:in `save_without_dirty'
from /var/www/releases/20081002155111/vendor/rails/activerecord/lib/active_record/dirty.rb:75:in `save_without_transactions'
from /var/www/releases/20081002155111/vendor/rails/activerecord/lib/active_record/transactions.rb:106:in `save'
from /var/www/releases/20081002155111/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:66:in `transaction'
from /var/www/releases/20081002155111/vendor/rails/activerecord/lib/active_record/transactions.rb:79:in `transaction'
from /var/www/releases/20081002155111/vendor/rails/activerecord/lib/active_record/transactions.rb:98:in `transaction'
from /var/www/releases/20081002155111/vendor/rails/activerecord/lib/active_record/transactions.rb:106:in `save'
from /var/www/releases/20081002155111/vendor/rails/activerecord/lib/active_record/transactions.rb:118:in `rollback_active_record_state!'
from /var/www/releases/20081002155111/vendor/rails/activerecord/lib/active_record/transactions.rb:106:in `save'
Это было полезно?

Решение

Может быть, это ошибка: # 1030 - Получена ошибка 139 из механизма хранения , но было бы полезно, если бы вы опубликовали запрос, который должен прийти сразу после сообщения об ошибке.

Другие советы

Когда вы произносите текстовое поле, оно имеет тип VARCHAR или TEXT?

Если это первое, то вы не можете хранить в этом столбце строку размером более 255 символов (возможно, меньше с использованием UTF-8). Если последнее, лучше опубликовать определение схемы, чтобы люди могли помочь вам в дальнейшем.

Это казалось очень странной ошибкой mysql, когда текст усекался до 256 символов (для типа текста), и приведенная выше ошибка заключается в том, что строка состояла из 1000 символов или более.изменение столбца таблицы на текстовый снова устранило проблему, или она просто устранила ее сама..я все еще не уверен.

Обновить:Изменение типа таблицы на MyISAM устранило эту проблему

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top