2

開発者がブロブを使用することを選択した理由が何であれ、コンテンツをブロブとして保持する mysql データベースがあります。データをテキストに、データ型をテキストに変換することは可能ですか?

4

2 に答える 2

3

テーブルの変更コマンドを試しましたか?

alter table mytable change mycolumn mycolumn text; 

http://forums.mysql.com/read.php?103,164923,167648#msg-167648から、CAST を使用できるようです。

新しい (TEXT) 列を作成し、更新コマンドで入力できます。

update mytable set myNewColumn = CAST(myOldColumn AS CHAR(10000) CHARACTER SET utf8) 
于 2009-10-27T02:20:05.220 に答える
1

フィールドを blob からテキストに変換すると、127 を超えるすべての文字が切り捨てられます。私の場合、多くのヨーロッパ文字があるため、これはオプションではありませんでした。これが私がしたことです:

  1. 一時フィールドをテキストとして作成
  2. blob フィールドを temp フィールドにコピーします。 UPDATE tbl SET col_temp = CONVERT(col USING latin1); この場合、ブロブは latin1 でエンコードされた文字を保持していました
  3. 実際のフィールドをテキスト データ型に変換する
  4. temp を実際のフィールドにコピーする
  5. 一時列を削除

正確には簡単ではありませんが、機能し、データの損失はありませんでした。私はバージョンを使用しています:「5.1.50-community」

于 2011-05-23T16:33:47.417 に答える