2013-07-29 27 views
0

數據庫名稱:測試 表名稱:訂單,order_shipping,order_payment無法使用名爲'order'的表執行插入查詢?

查詢列出了我的錯誤

INSERT INTO order(order_status,customer_id) values('booked',1) 

錯誤:1064 - 你在你的SQL語法錯誤;檢查對應於你的MySQL服務器版本正確的語法使用近「順序(ORDER_STATUS,CUSTOMER_ID)VALUES(」預訂「 1)」在行手冊1

但完全相同的查詢將工作,如果我的表名前加數據庫名

INSERT INTO test.order(order_status,customer_id) values('booked',1) 

結果:插入全成

我改名的tablename '秩序' 到 'order_main' 和它的作品沒有數據庫名稱

INSERT INTO order_main(order_status,customer_id) values('booked',1) 

插入全成

我的問題是,爲什麼不無附加到表名數據庫名我原來的查詢工作。是否因爲我有其他表以這個表名開頭?

表在我的數據庫:順序,order_shipping,order_payment

+0

'Order'是mysql中的保留字 –

回答

4

orderreserved keyword within MySQL。如果你想使用它作爲一個標識符,它括在反引號:

INSERT INTO `order` (order_status,customer_id) values('booked',1) 

在第二個查詢,您可以指定一個完整的標識符,MySQL不會誤認爲是關鍵字。因此,它沒有問題。

+0

謝謝Sirko ..沒有那樣想....感謝您花時間向我解釋它...... :) – Raj