【问题标题】:Why does this ALTER TABLE query throw syntax error?为什么这个 ALTER TABLE 查询会引发语法错误?
【发布时间】:2013-05-16 08:34:16
【问题描述】:

这是我正在使用的查询:

ALTER TABLE apartment ADD technical TEXT NOT NULL AFTER is_sale

为什么会产生语法错误?

编辑:

ALTER TABLE apartment ADD COLUMN technical TEXT NOT NULL AFTER is_sale 仍然产生错误:

Error: (1064) 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 'ALTER TABLE andreevka_apartment ADD COLUMN technincal TEXT NOT NULL AFTER' at line 1

也不验证:http://developer.mimer.com/validator/parser200x/index.tml#parser

【问题讨论】:

  • 请记住始终在您的问题中显示整个错误。
  • 你忘了在游览语法中写COLUMN

标签: mysql phpmyadmin syntax-error alter-table


【解决方案1】:

事实证明,我的查询是从 PhpMyAdmin 复制粘贴的,并且存在一些编码问题。我将它粘贴到 Notepad++ 中,将其转换为 ANSI 并且它可以工作。诡异的。

语法非常好。

【讨论】:

    【解决方案2】:

    您有一个语法错误,要添加列,您应该在句子中使用COLUMN

    ALTER TABLE apartment ADD COLUMN technical TEXT NOT NULL
    

    已编辑

    我认为您不能将AFTERALTER 一起使用,因为它不关心列顺序,对于存储或查询都没有关系。

    【讨论】:

    • 仍然抛出错误,请参阅我的编辑。另外,为什么我的语法没有突出显示?会不会是某种编码问题?
    • @exizt 我认为这是因为ALTER 不会关心列顺序,因为它对存储或查询无关紧要,所以不要使用AFTER 并且您已经准备好去
    【解决方案3】:

    ALTER TABLE apartment ADD technical TEXT NOT NULL AFTER is_sale 工作正常,我对其进行了测试。我使用 HeidiSQL 作为客户端。这里不需要 ADD COLUMN。检查 is_sale 名称是否正确或 公寓名称正确

    【讨论】:

      【解决方案4】:

      使用ADD COLUMN 添加新列

      ALTER TABLE apartment ADD COLUMN technical TEXT NOT NULL AFTER is_sale
      

      【讨论】:

        【解决方案5】:

        不确定在 MySQL 中是否允许,但在 Oracle 中还有另一种语法:

        ALTER TABLE apartment ADD (technical TEXT NOT NULL AFTER is_sale);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-02-24
          • 1970-01-01
          • 2014-12-11
          • 2016-03-22
          • 1970-01-01
          相关资源
          最近更新 更多