【问题标题】:MySQL create view errorMySQL创建视图错误
【发布时间】:2015-08-27 06:53:10
【问题描述】:

这是我使用 MySQL/MySQL WorkBench 创建视图和相关错误消息的语句。我尝试了 select -- from -- where 工作。任何提示表示赞赏。 :)

CREATE VIEW [Products Above Average Price] AS            
SELECT ProductName,Price
FROM Products
WHERE Price>(SELECT AVG(Price) FROM Products)

错误代码:1064。您的 SQL 语法有错误;查看与您的 MySQL 服务器版本相对应的手册,以了解在 '[Products Above Average Price] AS #how to? 附近使用的正确语法。 SELECT ProductName,Price ' 在第 1 行

【问题讨论】:

  • MySQL 使用反引号而不是 []。
  • 为我工作,谢谢@jarlh。如果您有正式的答案,我可以帮助标记为答案,以使遇到同样问题的其他人受益。 :)
  • 已经有一个有用的问题:stackoverflow.com/questions/11321491/…

标签: mysql sql


【解决方案1】:

您必须使用 ANSI 标准双引号 "" 而不是 [] 括号。

CREATE VIEW "Products Above Average Price" AS 
SELECT ProductName,Price
FROM Products
WHERE Price>(SELECT AVG(Price) FROM Products)

【讨论】:

    【解决方案2】:

    这是在 MySQL 中创建视图的样子

    Create View `MyViewName` as 
        Select
            col1, col2, col3
        From
            myTable T
    

    在您的情况下,由于[] 未在 MySQL 中使用而出现问题。用

    替换您的查询
    CREATE VIEW `Products Above Average Price` AS            
        SELECT ProductName,Price
        FROM Products
        WHERE Price>(SELECT AVG(Price) FROM Products)
    

    【讨论】:

      【解决方案3】:

      (复制评论) ANSI SQL 有双引号 ("") 用于分隔标识符,例如

      CREATE VIEW "Products Above Average Price" AS...
      

      MS SQL Server 也有 [] 作为供应商特定的方式来分隔标识符,例如

      CREATE VIEW [Products Above Average Price] AS...
      

      MySQL 有反引号,例如

      CREATE VIEW `Products Above Average Price` AS...
      

      【讨论】:

        猜你喜欢
        • 2018-10-08
        • 2018-10-13
        • 2013-12-20
        • 1970-01-01
        • 1970-01-01
        • 2023-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多