Frage

Ich erhalte einen MySQL-Fehler:

#update (Active :: StatementInvalid) „Mysql :: Fehler: # HY000Got Fehler 139 von Speicher-Engine:

Beim Versuch, ein Textfeld mit einem String der Länge 1429 Zeichen auf einem Datensatz zu aktualisieren, alle Ideen auf, wie man das Problem auf die Spur?

Im Folgenden finden Sie die Stacktrace.

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'
War es hilfreich?

Lösung

Vielleicht ist es dieser Fehler: # 1030 - Got Fehler 139 von Speicher-Engine , aber es würde helfen, wenn Sie die Abfrage schreiben würden, die nach der Fehlermeldung direkt kommen sollten.

Andere Tipps

Wenn Sie ein Textfeld sagen, ist es vom Typ VARCHAR oder TEXT?

Wenn seine erstere dann kann man nicht einer Zeichenfolge größer als 255 Zeichen speichern (möglicherweise weniger mit UTF-8-Overhead) in dieser Spalte. Wenn es letzterem, sollten Sie besser posten Sie Ihre Schema-Definition, damit die Menschen Ihnen weiterhelfen können.

Es schien ein sehr seltsam mysql Fehler zu sein, wo der Text (für einen Texttyp) auf 256 Zeichen gekürzt wurde und die obigen Fehler zu werfen ist die Zeichenfolge war 1000 Zeichen oder mehr. die Tabellenspalte Modifizieren wieder zu Text das Problem behoben, oder es nur es selbst festgelegt .. Ich bin noch nicht sicher.

Update: Ändern des Tabellentyp MyISAM fest dieses Problem

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top