2015-11-16 148 views
2

這是MySQL的代碼,我到目前爲止有:語法錯誤1064在CREATE TABLE語句

CREATE TABLE /*TABLE_PREFIX*/t_buttons (
    fk_i_item_id INT NULL, 
    fk_i_user_id INT NULL, 
    b_email varchar(100) NOT NULL, 
    b_type ENUM('buynow','addtocart','subscribe','donate') DEFAULT NULL, 
    b_style ENUM 

('default','round','frame') DEFAULT NULL, 
    b_target ENUM('_self','_blank') DEFAULT NULL, 
    b_text varchar(100) NOT NULL, 
    b_tooltip varchar(100) NOT NULL, 
    b_shipping int(11) NOT NULL, 
    b_a3 int(10) NOT NULL, 
    b_p3 int(10) NOT NULL, 
    b_t3 varchar(10) NOT NULL, 
    b_a1 int(11) NOT NULL, 
    b_p1 int(11) NOT NULL, 
    b_t1 varchar(10) NOT NULL, 
    b_cpp_logo_image varchar(100) NOT NULL, 
    b_return varchar(100) NOT NULL, 
    b_lc varchar(10) NOT NULL, 

     PRIMARY KEY (fk_i_item_id) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

在命令行上在MySQL運行這段代碼給了我這個錯誤:

ERROR 1064 - You have an error in your SQL syntax 'CREATE TABLE oc_t_buttons (fk_i_item_id INT NULL, fk_i_user' at line 1

+1

工作對我來說:http://sqlfiddle.com/#!9/21158 –

+0

你創建表的語法是正確的,但表名會是t_buttons,直到你不傳遞它的前綴,因爲我認爲oc ......所以可能是你沒有正確傳遞前綴。首先檢查表名t_buttons,如果你能夠創建表,那麼你可以檢查你的問題,通過傳遞帶表名的前綴。 –

回答

0

看起來像錯誤的定義...你的錯誤是「oc_t_buttons」?

2

看起來像您發佈的錯誤和您顯示的腳本不同。錯誤您張貼

CREATE TABLE oc_t_buttons ( 

而您粘貼實際的腳本是

CREATE TABLE /*TABLE_PREFIX*/t_buttons (

工作正常。這裏是一個演示SQLFiddle

即使腳本改變

CREATE TABLE oc_t_buttons ( 

那麼它也工作正常。見demo

0

您使用

fk_i_item_id INT NULL 

,並在最後一行:

PRIMARY KEY (fk_i_item_id) 

PRIMARY key不能讓NULL值。 你可以改變它是:

`fk_i_item_id` int(11) NOT NULL Default '0' 

或者

`fk_i_item_id` int(11) NOT NULL Auto_Increment