web-dev-qa-db-ja.com

MySQLで、いくつかのタプルでBLOB列の値を手動で編集するにはどうすればよいですか?

MySQLで、いくつかのタプルでBLOB列の値を手動で編集するにはどうすればよいですか?

このようなデータベースの手動キュレーションの便宜のために、最初に列をBLOBまたはTEXT、または何か他のものとして作成する必要がありますか?

1
qazwsx

フィールドをBLOBまたはTEXTとして格納することを決定するとき、この段落は役立つかもしれません:

BLOB値はバイナリ文字列(バイト文字列)として扱われます。それらには文字セットがなく、ソートと比較は列値のバイトの数値に基づいています。 TEXT値は、非バイナリ文字列(文字列)として扱われます。それらには文字セットがあり、値は文字セットの照合に基づいてソートおよび比較されます。 [src]

ここで説明する違いは、値の比較と並べ替えの方法です。

UPDATEステートメントを使用して、値を変更できます。

さて、いくつかのコメントから、このフィールドが主キーであることがわかりました。このテーブルがInnoDBであり、このテーブルにセカンダリインデックス(主キーではない他のインデックス)があり、テーブルが非常に大きくなることが予想される場合は、InnoDBがセカンダリインデックスを処理する方法に注意してください。

InnoDBはプライマリキーとセカンダリインデックスの値を格納するため、自動インクリメントされたint列をプライマリキーとして使用した場合よりもインデックスが大きくなります。

1
Derek Downey

私はvarchar(length)またはテキスト(ここでは blob vs text forum )をお勧めしますが、それはあなた次第です。 PHPmyadminは使いやすいですが、コンソールを使用して「更新」ステートメントを使用してテキストを変更することもできます。 Windowsを使用している場合はmysql管理者をお勧めします。macを使用している場合は、Mysql Workbenchを使用します。単純なクエリを作成する以外にも多くのツールがあるためです。

更新:いくつかの検索を行った後、インデックスのようなテキストフィールドを作成できますが、主キーとしてはできないことがわかりました。誰かがSOFで同じ質問をしました。基本的には、主キーをテキストからvarcharに変更しますなぜこれをチェックするのか、より深く link

0
jcho360