2015-04-06 86 views
0
mysql> CREATE TABLE metadata 
( 
id int, 
created_by int, 
modified_by int, 
deleted_by int, 
created_at datetime, 
modified_at datetime, 
deleted_at datetime, 
key varchar(45), 
definition_type varchar(1), 
metadata_type varchar(1), 
no_of_decimals int, 
is_required tinyint, 
min_range decimal, 
max_range decimal, 
entity varchar(10), 
sequence int, 
meta_group varchar(2), 
PRIMARY KEY (id)); 

ERROR 1064(42000):你在你的SQL語法錯誤;檢查對應於你的MySQL服務器版本正確的語法使用近 'VARCHAR(45),definition_type VARCHAR(1),METADATA_TYPE VARCHAR(1),no_of_decimal' 在行1PHP,MySQL的自動生成CREATE TABLE語句返回錯誤

我不是手動完全確定如何糾正這個錯誤,因爲這些類型的東西通常不具有在線的特定答案。我該如何解決這個錯誤?

+0

看起來你缺少了'created_at','modified_at'和'deleted_at'字段的數據類型。 – vikramls

回答

1

key是保留字,你應該在MySQL中使用反引號`逃避它:

`key` varchar(45) 
+0

你知道PHP是否有檢查保留字的功能嗎? –

+0

@Skyfactor_interns:我不認爲在php中有一個內置的解決方案,但是你可以轉義所有的標識符,不管它們是否保留。 – potashin

相關問題