Ошибка при обновлении записи - PullRequest
0 голосов
/ 02 октября 2008

Я получаю ошибку MySQL:

# update (ActiveRecord :: StatementInvalid) "Mysql :: Ошибка: # HY000Получена ошибка 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'

Ответы [ 3 ]

1 голос
/ 04 октября 2008

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

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

0 голосов
/ 03 октября 2008

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

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

0 голосов
/ 02 октября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...