1

3列追加したい。私が知らないことが2つあります。1つは各列のデフォルト値を指定する方法であり、次はスペースを持つテーブルを変更する方法です。

    ALTER TABLE  app name and url
ADD COLUMN price VARCHAR(200)
ADD COLUMN type_of_membership VARCHAR(200)
ADD COLUMN special_deal VARCHAR(200)

このエラーが発生します:

1064-SQL構文にエラーがあります。1行目の「nameandurlADD COLUMN price VARCHAR(200)ADD COLUMN type_of_membership VARCH」の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

スペース付きのテーブル名があるからだと思います。

これは、デフォルト値を挿入する方法ですか。

    ALTER TABLE  app name and url
ADD COLUMN price VARCHAR(200) DEFAULT 'None'
ADD COLUMN type_of_membership VARCHAR(200) DEFAULT 'None'
ADD COLUMN special_deal VARCHAR(200) DEFAULT 'None'

更新 これは私が実行したものです:

ALTER TABLE  `app name and url`
ADD COLUMN price VARCHAR(200) DEFAULT 'None',
ADD COLUMN type_of_membership VARCHAR(200) DEFAULT 'None',
ADD COLUMN special_deal VARCHAR(200) DEFAULT 'None';

そしてこれは私が得たものです:

 'mydb.app name and url' is not BASE TABLE

エラーはそれがビューであるためです..私は今それを取得します。ビューを変更する必要があります

4

2 に答える 2

3

backtickMySQLでは、 (アクサングラーブ)を使用してエスケープする必要があります

ALTER TABLE  `app name and url`
ADD COLUMN price VARCHAR(200)
ADD COLUMN type_of_membership VARCHAR(200)
ADD COLUMN special_deal VARCHAR(200)

MySQLでのアクサングラーブ(別名バックティック)引用文字の意味は何ですか?

PS:次回は、テーブルと列の名前に英数字のみを使用してください。

于 2012-09-10T06:01:29.083 に答える
2

使用する``

テーブル名を次のように置き換える必要があります

 ALTER TABLE  `app name and url`


SQLFiddleデモ

于 2012-09-10T06:02:22.567 に答える