66

現在の列があり、varchar(100)それを作成したいと考えてい10000ます。

それは同じくらい簡単ですか

alter table table_name set column col_name varchar (10000);

既存のデータを破損することを恐れています。このクエリを実行しても問題ありませんか? またはalter、別の方法で列を作成する必要がありますか?

ありがとう!

4

7 に答える 7

117

varchar 列のサイズを大きくしても安全です。データが破損することはありません。

安心できる場合は、データ構造を変更する前にいつでもデータベースのバックアップを実行できることを覚えておいてください。

ちなみに、正しい構文は次のとおりです。

ALTER TABLE table_name MODIFY col_name VARCHAR(10000)

また、列で以前にヌルが許可されていた/許可されていなかった場合は、alter table ステートメントの末尾の列タイプの後に適切な構文を追加する必要があります。

于 2012-04-17T01:59:30.860 に答える
62

私は通常、次のステートメントを使用します。

ALTER TABLE `table_name`
  CHANGE COLUMN `col_name` `col_name` VARCHAR(10000);

しかし、SETも機能すると思いますが、試したことはありません。:)

于 2012-04-17T02:04:51.760 に答える
22

さまざまな alter table 構文について説明したいと思います - MySQL のドキュメントを参照してください

列のデフォルトを追加/削除する場合:

ALTER TABLE table_name
ALTER COLUMN col_name {SET DEFAULT literal | DROP DEFAULT}

列の名前を変更し、そのデータ型を変更し、オプションで列の順序を変更するには:

ALTER TABLE table_name
CHANGE [COLUMN] old_col_name new_col_name column_definition
[FIRST|AFTER col_name]

列のデータ型を変更し、必要に応じて列の順序を変更するには:

ALTER TABLE table_name
MODIFY [COLUMN] col_name column_definition
[FIRST | AFTER col_name]
于 2013-12-24T07:41:24.627 に答える
1

私のためにこれを働いた:

ALTER TABLE テーブル名 MODIFY フィールド名 VARCHAR(128) NOT NULL;

于 2017-04-09T15:22:42.967 に答える