MySQL创建视图错误
Posted
技术标签:
【中文标题】MySQL创建视图错误【英文标题】:MySQL create view error 【发布时间】: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。如果您有正式的答案,我可以帮助标记为答案,以使遇到同样问题的其他人受益。 :) 已经有一个有用的问题:***.com/questions/11321491/… 【参考方案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...
【讨论】:
以上是关于MySQL创建视图错误的主要内容,如果未能解决你的问题,请参考以下文章