• 締切済み

データが入っている列の項目長をみじかくしたいのですが

alter table テーブル名 modify を使うと、修正する列を空にする必要があるというエラーが出てきてしまいます。 空にしないで、項目長を短くする方法はないでしょうか?

みんなの回答

  • calltella
  • ベストアンサー率49% (317/635)
回答No.1

A.ありません。 項目長を短くする事によってデータが破損する可能性があるからです。 一度、テーブルを他にコピーして項目長を削除してから変更後に コピーしたデータをコピーしてしてください。

jundayo
質問者

お礼

そうですか・・・ わかりました。ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • MYSQLのフィールドにユニークキーを設定する。

    すでに作ってしまったテーブルにユニークキーを付けたいと考えています。最悪の場合、新しくカラムを作っての追加でもかまわないのですが、いろいろ試してもエラーが返されてしまいます。 codeというカラムにユニークキーを設定したいのですが、 alter table テーブル名 modify unique code; alter table テーブル名 add unique code2; alter table テーブル名 modify code unique; alter table テーブル名 add code2 unique; alter table テーブル名 modify code test unique; alter table テーブル名 add code2 test unique; alter table テーブル名 modify unique code test; alter table テーブル名 add unique code2 test; alter table テーブル名 modify (code unique); alter table テーブル名 add (code2 unique); alter table テーブル名 modify (code text unique); alter table テーブル名 add (code2 text unique); など、思いつく限り試し、グーグルで調べる限り調べたのですが、出てきたものをためしてもダメでした。 テーブルを作成した後、カラムにユニークキーを設定した経験のある方、どのように変更をしたのでしょうか?

    • ベストアンサー
    • MySQL
  • 項目長変更後の処理について教えてください。

    項目名:コード varchar (3) を "ALTER TABLE テーブル名 ALTER COLUMN コード varchar (4);"を実行し 項目名:コード varchar (4)へ変更したいと思っています。 そこで質問なんですが現在コード の内容が"001"のような3桁なのですがそれを"0001"のように4桁に変更したいのです。(頭に"0"を追加する。) (一見づつ読んで更新していく方法はわかりますがもう少しスマートに処理がしたいので) どういったSQL文を発行すれば良いのでしょうか? よろしくお願いします。

  • alter table で text が midiumtext になってしまう

    当初作ったテーブル(テーブル名=test)では col1 char(10) unique not null, col2 text not null, col3 text not null, col4 text not null だったのですが、col1だけをchar→varcharに変えたくて alter table test modify col1 varchar(10) unique not null としたところ、他のtext型項目が全てmidiumtextになってしまいました。 ひとつずつtextに直そうと alter table test modify col2 text not null を実行し次に alter table test modify col3 text not null とするとcol3はtextになるがcol2がまたmidiumtextになってしまいます。 midiumtextほどの容量は必要ないのでcol2~col4をtextに戻したいのですが、 どのようにすればよいのでしょうか。 ご教示願います。 宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • Oracle テーブルの列削除

    タイトルの通りテーブル(test)の列(retu)を削除したいのですが・・・ Sql*pLUS画面 SQL> alter table test drop(retu); ←この用に入力 alter table test drop(retu) * エラー行: 1: エラーが発生しました。 ORA-00905: キーワードがありません。 となってしまい列を削除できません。 なにか構文の間違いでしょうか?

  • 列と列のあいだに、新しい列を挿入したい。

    お願いいたします。 テーブル tblのA列とB列のあいだに 新しくC列を挿入したい場合、 "ALTER TABLE tbl ADD C …" のあと、なんと記述すればよいでしょうか?

    • ベストアンサー
    • MySQL
  • 列の位置を指定した表構造の変更はできないでしょうか

    いつもお世話になっております。 列の追加や、列の並びの変更について質問があります。 ALTER TABLE tb ADD~ やALTER TABLE tb MODIFY~で表の構造を変更する場合、列の位置を指定することはできないでしょうか。 たとえば最後の位置とか、○番目とか、×列の後のように指定して 列を追加したり、列の位置を変更する、という意味です。 マニュアルを調べてみたのですがわからず困っております。 どうか、よろしくお願いいたします。

  • SQLserverでの列の削除について

    SQLserver2000にてSQL文の練習をしている、データベースの初心者です。 SQLserverでは、直接列の削除ができないと聞きました。 ---------------------------------------- ALTER TABLE テーブル名 DROP 列名 ---------------------------------------- ↑このようにはできませんでした。 そこで、いったん削除したい列以外の列がある別のテーブルをつくってからテーブル名を変更する方法として、 1,新しいテーブルを、元のテーブルからデータをコピーして作る。 2,元のテーブルを削除 3,新しいテーブルの名前を元の名前に変更。 という手段を使えばよいという情報を得ましたが、1の部分がどうしてもできません。 (テーブル削除、テーブル名の変更はできました) ---------------------------------------- CREATE TABLE 新しいテーブル名 AS SELECT 削除した列以外の列名 FROM 元のテーブル名 ---------------------------------------- このようにすると、 ---------------------------------------- サーバー : メッセージ 156、レベル 15、状態 1、行 2 キーワード 'AS' 付近に正しくない構文があります。 ---------------------------------------- といわれてしまいます。 EnterpriseManagerを使わずにやる方法が知りたいです。 正しいSQL文をどうかご教授ください。 どうぞよろしくお願いいたします。 ※ちなみにOSはWIN2000を使っています。

  • NOT NULL 制約の削除

    MSSQL(SQLServer2000)にて、NOT NULLの列制約をはずすにはどうしたらよいのでしょうか。 ALTER TABLE <テーブル名> ALTER COLUMN <列名> DROP NOT NULL をやってみたのですが、構文エラーになってしまいます。 よろしくお願いします。

  • テーブルの指定した位置に列を追加する

    ALTER TABLE文(?)を使って、既存のテーブルの指定した位置に 新しい列を追加する方法はあるのでしょうか? (DB:Oracle 10g) よろしくお願いします。

  • MySQLで、テーブル内のフィールドの名前を変えたいのですが・・・

    MySQL4.0.20 Linuxを使っています。 テーブル内のフィールドの名前を変えたいのですが、alter table の modifyはカラムの属性を変えるもので、名前を変えるのは運用途中でできるのかなと、ふと疑問に思いました。 alter tableなどでできるのでしょうか? 結局サーバーを止めて、バックアップし、テーブル定義を書き直して、リストアするしか無いのでしょうか?

    • ベストアンサー
    • MySQL
このQ&Aのポイント
  • 一つのカラーのインクが空になって、白黒印刷がブロックされた。スタートしない場合、どうすればいいですか?
  • EPSON製品の白黒印刷がスタートしない場合、一つのカラーのインクが空になっている可能性があります。その場合は、カラーインクを交換することでブロックが解除されます。
  • 白黒印刷のブロックを解除する方法は、一つのカラーのインクを交換することです。インクが空になっている場合は、新しいインクに交換してください。
回答を見る