سؤال

أحصل على mysql error:

#تحديث (ActiveRecord::StatementInvalid) "Mysql::خطأ:#HY000Got خطأ 139 من مشغل التخزين:

عند محاولة تحديث حقل نص على سجل مع سلسلة من طول 1429 الشخصيات ، أي أفكار حول كيفية تعقب المشكلة ؟

أدناه هو 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'
هل كانت مفيدة؟

المحلول

ربما هذا الخطأ: #1030 - حصلت على خطأ 139 من مشغل التخزين, ولكن سيكون من المفيد إذا كنت تريد وظيفة الاستعلام التي يجب أن تأتي مباشرة بعد رسالة الخطأ.

نصائح أخرى

عندما تقول حقل النص ، هل هو من نوع VARCHAR أو النص ؟

إذا كان السابق ثم لا يمكنك تخزين سلسلة أكبر من 255 حرف (ربما أقل مع UTF-8 النفقات العامة) في هذا العمود.إذا كان هذا الأخير من الأفضل الرد على تعريف المخطط حتى يتمكن الناس من مساعدتك.

بدا غريب جدا الخلية خطأ ، حيث نص كان يتم اقتطاعها إلى 256 حرفا (وهو نوع النص) ورمي الخطأ أعلاه هي السلسلة كان 1000 حرف أو أكثر.تعديل عمود الجدول إلى النص مرة أخرى إصلاح المشكلة ، أو أنه مجرد إصلاح النفس..ما زلت غير متأكد.

تحديث:تغيير الجدول نوع MyISAM إصلاح هذه المشكلة

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top