문제

MySQL 오류가 발생합니다.

#update (activeRecord :: stationinValid) "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 유형입니까, 아니면 텍스트입니까?

전자라면 해당 열에 255 숯 (UTF-8 오버 헤드로 적은 덜)보다 큰 문자열을 저장할 수 없습니다. 후자 인 경우, 사람들이 당신을 더 도울 수 있도록 스키마 정의를 게시하는 것이 좋습니다.

텍스트가 256 자 (텍스트 유형의 경우)로 잘린 상태에서 매우 이상한 MySQL 오류 인 것처럼 보였고 위의 오류를 던지는 것은 문자열이 1000 자 이상입니다. 테이블 열을 다시 텍스트로 수정하면 다시 문제가 해결되거나 자체적으로 고정되었습니다. 아직 확실하지 않습니다.

업데이트 : 테이블 유형을 MyISAM으로 변경했습니다.이 문제가 해결되었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top