2015-11-16 130 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