2015-08-27 100 views
1

這裏是我使用MySQL/MySQL WorkBench創建視圖和相關錯誤消息的聲明。我嘗試了選擇從哪裏工作。任何提示都表示讚賞。 :)MySQL創建視圖錯誤

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

錯誤代碼:1064您的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,以查看'[高於平均價格的產品] AS#顯示附近使用的正確語法?在1號線

+1

MySQL使用back-ticks而不是[]。 – jarlh

+0

適合我,謝謝@jarlh。如果你能得到正式答案,我可以幫助標記答案,以便讓遇到同樣問題的其他人受益。 :) –

+0

已經有一個有用的問題:http://stackoverflow.com/questions/11321491/when-to-use-single-quotes-double-quotes-and-backticks – Barmar

回答

1

選擇產品名稱,價格「你必須使用ANSI標準雙引號""而不是[]支架。

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

下面是創建視圖應該如何看起來像在MySQL

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

在你的情況下,問題occures,因爲這是不能在MySQL中使用[]。與

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

(複製評論) ANSI SQL具有雙引號("")分隔標識符,例如替換查詢

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

MS SQL服務器還具有[]作爲供應商特定的方式來界定標識符,例如

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

MySQL有反撥,例如,

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