MySQL NULL错误#1064表示NOT NULL

时间:2012-05-03 16:37:28

标签: mysql phpmyadmin mysql-error-1064

创建表时遇到此错误。如何解决?

  

1064 - 您的SQL语法出错;查看与您的MySQL服务器版本相对应的手册,以便使用接近' NOT NULL,mult smallint默认NOT NULL,part_des varchar(120)NOT NULL defau'在第4行

CREATE TABLE currentpricer_supplier1
(
    supplier_number varchar(50) NOT NULL,
    moq smallint default NOT NULL,
    mult smallint default NOT NULL,
    part_des varchar(120) default NOT NULL,
    uom_qbreak char(2) default NOT NULL,
    costbreak1 smallint default NOT NULL,
    costvalue1 dec(6,3) default NULL,
    costbreak2 smallint default NOT NULL,
    costvalue2 dec(6,3) default NULL,
    costbreak3 smallint default NOT NULL,
    costvalue3 dec(6,3) default NULL,
    costbreak4 smallint default NOT NULL,
    costvalue4 dec(6,3) default NULL,
    costbreak5 smallint default NOT NULL,
    costvalue5 dec(6,3) default NULL,
    costbreak6 smallint default NOT NULL,
    costvalue6 dec(6,3) default NULL,
    costbreak7 smallint default NOT NULL,
    costvalue7 dec(6,3) default NULL,
    costbreak8 smallint default NOT NULL,
    costvalue8 dec(6,3) default NULL,
    leadtime smallint default NOT NULL,
    leadtime_code char(2) default NOT NULL,
    PRIMARY KEY (supplier_number)
)

2 个答案:

答案 0 :(得分:2)

如果指定了default关键字,则必须设置默认值。 “not null”是另一个规范,而不是值本身。

默认值是多少? e.g:

  

moq smallint默认值0 NOT NULL,

答案 1 :(得分:1)

在每个包含default关键字的列上,您未提供默认值。对于数字,这可以简单到0,对于默认后的字符,可以是空字符串。此外,您的主键列不存在,因此您需要更正它 - 是lumex_number吗?

以下编辑有效:

CREATE TABLE currentpricer_supplier1
(
    lumex_number varchar(50) NOT NULL,
    moq smallint default 0 NOT NULL,
    mult smallint default 0 NOT NULL,
    part_des varchar(120) default 0 NOT NULL,
    uom_qbreak char(2) default 0 NOT NULL,
    costbreak1 smallint default 0 NOT NULL,
    costvalue1 dec(6,3) default 0 NULL,
    costbreak2 smallint default 0 NOT NULL,
    costvalue2 dec(6,3) default 0 NULL,
    costbreak3 smallint default 0 NOT NULL,
    costvalue3 dec(6,3) default 0 NULL,
    costbreak4 smallint default 0 NOT NULL,
    costvalue4 dec(6,3) default 0 NULL,
    costbreak5 smallint default 0 NOT NULL,
    costvalue5 dec(6,3) default 0 NULL,
    costbreak6 smallint default 0 NOT NULL,
    costvalue6 dec(6,3) default 0 NULL,
    costbreak7 smallint default 0 NOT NULL,
    costvalue7 dec(6,3) default 0 NULL,
    costbreak8 smallint default 0 NOT NULL,
    costvalue8 dec(6,3) default 0 NULL,
    leadtime smallint default 0 NOT NULL,
    leadtime_code char(2) default '' NOT NULL,
    PRIMARY KEY (lumex_number)
)