内容を失うことなく、varchar列の長さを255文字から500文字に更新しようとしています。テーブルを削除して再作成したことがありますが、これを行うために使用する必要があると思われるALTERステートメントには触れられていません。私はここでドキュメントを見つけました: ALTER TABLE(Transfact-SQL) しかし私はそれの頭や尾を作ることができません。
私はこれまでに次のものを持っています(本質的に残念なことに何も):
alter table [progennet_dev].PROGEN.LE
alter column UR_VALUE_3
どうやってこれに取り組むのですか?この文についてもっと良いドキュメントがありますか(私は例文を検索しましたが、空になりました)。
あなたが必要
ALTER TABLE YourTable ALTER COLUMN YourColumn <<new_datatype>> [NULL | NOT NULL]
ただし、必要に応じてNOT NULL
を明示的に指定することを忘れないでください。
ALTER TABLE YourTable ALTER COLUMN YourColumn VARCHAR (500) NOT NULL;
以下のように指定しないでください。
ALTER TABLE YourTable ALTER COLUMN YourColumn VARCHAR (500);
その場合、列はデフォルトでNOT NULL
として定義されていても、デフォルトでNULLを許可します。すなわちALTER TABLE ... ALTER COLUMN
の指定を省略することは常にとして扱われます。
ALTER TABLE YourTable ALTER COLUMN YourColumn VARCHAR (500) NULL;
この動作は、ALTER TABLE
で(またはCREATE TABLE
時に)作成された新しい列に使用されるものとは異なります。デフォルトのNULL入力可否は ANSI_NULL_DFLT
設定によって異なります。
ALTER
で列サイズを大きくしてもデータは失われません。
alter table [progennet_dev].PROGEN.LE
alter column UR_VALUE_3 varchar(500)
@Martinが指摘するように、NULL | NOT NULL
を明示的に指定することを忘れないでください
ALTER TABLE table name
modify COLUMN column name
varchar( "length");
私も疑いを持っていました、私のために働いたのは
ALTER TABLE `your_table` CHANGE `property` `property`
VARCHAR(whatever_you_want) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;
ALTER TABLE TABLE_NAME MODIFY COLUMN_NAME VARCHAR(40);
質問に遅れて-しかし、私はOracle SQL Developerを使用しており、@ anonymousの回答が最も近いが、これに対するクエリを編集するまで構文エラーを受け取り続けた。
これが誰かを助けることを願って
IntelliJ内でMaria-DBおよびDB-Navigatorツールを使用すると、MODIFY Columnが代わりに機能しましたAlter Column