2

1つのテーブルの複数の列のタイプをvarchar(50)に変更しようとしています(単一のSQLクエリで)。何が間違っているのか、なぜこのクエリでエラーが表示されるのかを教えてください。

ALTER TABLE 'my_table_name' 
    ALTER COLUMN 'col1' varchar(50), 
    ALTER COLUMN 'col2' varchar(50), 
    ALTER COLUMN 'col3' varchar(50)

ありがとうございました!

4

5 に答える 5

4

一重引用符を削除し、MODIFYnotを使用しますCHANGE COLUMN

ALTER TABLE my_table_name 
    MODIFY col1 varchar(50), 
    MODIFY col2 varchar(50), 
    MODIFY col3 varchar(50)
于 2012-12-21T16:15:04.040 に答える
2

MODIFY一重引用符を使用して削除する必要があります。

ALTER TABLE my_table_name 
    MODIFY col1 varchar(50), 
    MODIFY col2 varchar(50), 
    MODIFY col3 varchar(50)
于 2012-12-21T16:15:07.683 に答える
0

列定義のみを(名前を変更せずに)変更する場合は、次の構文を使用できます。

ALTER TABLE 'my_table_name' 
    MODIFY 'col1' varchar(50)

それ以外の場合は、次の構文を使用する必要があります。

ALTER TABLE 'my_table_name' 
    CHANGE 'col1old', 'col1new' varchar(50)
于 2012-12-21T16:23:37.450 に答える
0

必要な構文は次のとおりです。

ALTER TABLE 'my_table_name'  
modify COLUMN 'col1' varchar(50),   
modify COLUMN 'col2' varchar(50),   
modify COLUMN 'col3' varchar(50)
于 2012-12-21T16:14:12.087 に答える
0

を使用すると、 thenCHANGEを指定する必要があります:new_col_namecol_definition

ALTER TABLE `my_table_name` 
CHANGE COLUMN `col1` `col1` varchar(50),   
CHANGE COLUMN `col2` `col2` varchar(50),   
CHANGE COLUMN `col3` `col3` varchar(50)

を使用すると、次MODIFYを指定するだけで済みますcol_definition

ALTER TABLE `my_table_name` 
MODIFY COLUMN `col1` varchar(50),   
MODIFY COLUMN `col2` varchar(50),   
MODIFY COLUMN `col3` varchar(50)

mysql_manual

于 2012-12-21T16:18:03.663 に答える