1

我想添加 3 列。有两件事我不知道,一个是如何为每列指定一个默认值,然后是如何更改有空格的表:

    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 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'name and url ADD COLUMN price VARCHAR(200) ADD COLUMN type_of_membership VARCH' 附近使用正确的语法

我想这是因为我有一个带空格的表名。

这是您插入默认值的方式:

    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

在 Mysql 中,您需要使用backtick(重音)对其进行转义

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中重音(AKA反引号)引用字符的含义是什么?

PS:下次在你的表和列名中只使用字母数字。

于 2012-09-10T06:01:29.083 回答
2

利用``

您必须将表名替换为

 ALTER TABLE  `app name and url`


SQL Fiddle 演示

于 2012-09-10T06:02:22.567 回答