سؤال

لدي قاعدة بيانات mysql تحتوي على محتوى على شكل كائن ثنائي كبير الحجم، لأي سبب اختار هؤلاء المطورون استخدام كائن ثنائي كبير الحجم، فهو خارج عن سيطرتي.هل من الممكن تحويل البيانات إلى نص ونوع البيانات إلى نص؟

هل كانت مفيدة؟

المحلول

هل حاولت الأمر الجدول يغير؟

alter table mytable change mycolumn mycolumn text; 

http://forums.mysql.com/ read.php؟ 103،164923،167648 # جي اس-167648 يبدو أنك يمكن استخدام CAST.

هل يمكن إنشاء عمود جديد (TEXT)، ثم تعبئته في مع أمر تحديث:

update mytable set myNewColumn = CAST(myOldColumn AS CHAR(10000) CHARACTER SET utf8) 

نصائح أخرى

يؤدي تحويل الحقل من كائن ثنائي كبير الحجم إلى نص إلى اقتطاع كافة الأحرف > 127.في حالتي لدينا الكثير من الشخصيات الأوروبية، لذلك لم يكن هذا خيارًا.وإليك ما فعلته:

  1. إنشاء حقل مؤقت كنص
  2. انسخ حقل النقطة إلى الحقل المؤقت:UPDATE tbl SET col_temp = CONVERT(col USING latin1);في هذه الحالة، كان blob الخاص بي يحتوي على أحرف مشفرة بـ latin1
  3. تحويل الحقل الفعلي إلى نوع بيانات النص
  4. انسخ درجة الحرارة إلى الحقل الفعلي
  5. إزالة عمود درجة الحرارة

لم يكن الأمر واضحًا تمامًا ولكنه نجح ولم يفقد البيانات.أنا أستخدم الإصدار:'5.1.50-المجتمع'

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