0

MySQL を再訪し、テーブルの構造を変更しようとしています。2 つの行を varchar(30) からそれ以上に変更したいと考えています。

私はそれをグーグルで検索し、正しいステートメントと思われるものを試しましたが、構文エラーが発生しています:

ALTER TABLE 'compdetails' CHANGE 'compName' varchar(60) not null;

ただし、このステートメントでは構文エラーが発生します。また、テーブル/列名の周りに '' を付けずに試してみましたが、うまくいきませんでした。

「エラー 2064 (42000): SQL 構文にエラーがあります....」

誰かが私の記憶をジョギングできますか?

4

3 に答える 3

1

ちょうどそう:

ALTER TABLE 'compdetails' CHANGE compName compName varchar(60) not null;
于 2011-02-15T10:27:50.173 に答える
1
ALTER TABLE `compdetails` MODIFY COLUMN `compName` varchar(60) not null;
于 2011-02-15T10:28:01.477 に答える
1

まず、テーブル名を引用する場合は、一重引用符ではなくバックティックを使用する必要があります。一重引用符は、文字列リテラルにのみ使用されます。

次に、列の名前を変更する場合はCHANGEを使用しますが、MODIFYを使用すると、名前を変更せずに列定義を変更できます。したがって、次を使用する必要があります。

ALTER TABLE compdetails MODIFY compName varchar(60) NOT NULL;

オンラインのMySQLドキュメントは非常に優れているため、構文に問題が発生した場合はいつでも確認することをお勧めします。

于 2011-02-15T10:33:48.527 に答える