電子書籍の厳選無料作品が豊富!

MySQL5.1で varchar(100)のものを varchar(90)にする予定です。
(後ろの10バイトは無条件になくなっても構いません)

通常の手順ではalter tableを使います。
今回は、他の項目も変更(auto_incrementやキーの追加)するので
一度 mysqldumpでSQLを吐き出して、

CREATE文の以下を変更
varchar(100) → varchar(90)
auto_incrementやキーの追加

そして、mysqlでリストアします。

この方法は、アリでしょうか?

他のデータベース(PostgreSQL, SQLServer, Oracle)でも使える手法でしょうか?

皆さんのvarchar(100) → varchar(90)する方法が知りたいです。

A 回答 (1件)

>varchar(100)のものを varchar(90)にする予定



一発でやるなら以下のような処理でしょうね

ALTER TABLE `テーブル` CHANGE `フィールドA` `フィールドA` VARCHAR( 90 ) NOT NULL

ただ、既存のものを処理するなら移行トラブルを避けるために、

(1)新たなフィールドをつくる
(2)update構文で古いフィールドの値を新しいフィールドにsetする
(3)データが間違いないか確認する
(4)古いフィールドを削除する

という流れにした方がよいとおもいます。

>後ろの10バイトは無条件になくなっても構いません

バイトじゃなくて文字数だと思いますが・・・
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!