3

BIT(1)列の名前とタイプを からに変更したいINT(1)

MySQL ワークベンチを使用しています。

私はこれを試しました:

ALTER TABLE table_name ADD new_column_name INT(1)

update table_name
set new_column_name = convert(INT(1), old_column_name)

ALTER TABLE table_name DROP COLUMN old_column_name

しかし、私はこのエラーが発生しています

You have an error in your SQL syntax; check the manual that corresponds to your
MySQL server version for the right syntax to use near 'INT(1), old_column_name)'
4

5 に答える 5

5
ALTER TABLE table_name ADD new_column INT(1);

update table_name
  set new_column = case when old_column then 1 else 0 end;

ALTER TABLE table_name DROP COLUMN old_column;

または単に使用します:

ALTER TABLE table_name MODIFY COLUMN old_column int;
于 2013-06-07T08:34:04.023 に答える
4
ALTER TABLE table_name CHANGE old_column_name new_col_name varchar(20) not null; 

varchar を例に挙げます。好きなデータ型に変更できます。その後、制約を追加することもできます。

于 2013-06-07T08:25:27.477 に答える
2

INT(1)変換に有効な型ではないようです。

さらに、正しい構文はCONVERT(<element>, <type>).

詳細については、こちらをご覧ください。

于 2013-06-07T08:26:10.817 に答える
2

このようなものを試してみてください。

ALTER TABLE table_name ADD new_column_name INT

update table_name
set new_column_name = convert(int,convert(varchar(1), old_column_name))
于 2013-06-07T08:22:30.060 に答える