#1067 - “会员资格”的默认值无效

时间:2012-12-09 22:13:39

标签: mysql mysql-error-1067

我正在使用我的程序中包含的SQL文件,一旦我修复了一个问题,我就能在这里找到答案(谢谢)..我再次运行它并得到以下错误:

SQL查询:

# Create table structure for 'member' table
CREATE TABLE member(

memberID INT( 11 ) NOT NULL AUTO_INCREMENT ,  
title VARCHAR( 80 ) NOT NULL DEFAULT  '',  
firstname VARCHAR( 80 ) NOT NULL DEFAULT  '',  
lastname VARCHAR( 80 ) NOT NULL DEFAULT  '',  
email VARCHAR( 80 ) NOT NULL DEFAULT  '',  
address VARCHAR( 80 ) NOT NULL DEFAULT  '',  
suburb VARCHAR( 80 ) NOT NULL DEFAULT  '',  
state VARCHAR( 80 ) NOT NULL DEFAULT  '',  
country VARCHAR( 80 ) NOT NULL DEFAULT  '',  
postcode VARCHAR( 11 ) NOT NULL DEFAULT  '',  
mobile VARCHAR( 80 ) NOT NULL DEFAULT  '',  
phone VARCHAR( 80 ) NOT NULL DEFAULT  '',  
fax VARCHAR( 80 ) NOT NULL DEFAULT  '',  
membership INT( 2 ) NOT NULL DEFAULT  '',  
payment INT( 2 ) NOT NULL DEFAULT  '',  
startdate BIGINT( 14 ) NOT NULL DEFAULT 0,  
enddate BIGINT( 14 ) NOT NULL DEFAULT 0,  
userID INT( 11 ) NOT NULL ,  
PRIMARY KEY ( memberID ) ,  
UNIQUE (  
memberID  
)  
) ENGINE = MYISAM ;

MySQL说:

#1067 - Invalid default value for 'membership' 

我需要做些什么来改变这项工作?这是一个较旧的脚本,但我不够了解MySQL 5.5版本需要更改的内容。

非常感谢你的帮助!

我确定在修复此错误后会出现其他错误..

2 个答案:

答案 0 :(得分:7)

成员资格列是一个int,但是你给它一个默认的字符串值''。所以改变

 membership INT( 2 ) NOT NULL DEFAULT '',

 membership INT( 2 ) NOT NULL DEFAULT 0,

(0或该字段所需的任何默认值。)

答案 1 :(得分:0)

我得到了:

Incorrect integer value: '' for column 'column_name' at row 1

我已修复它编辑/etc/mysql/my.cnf/etc/mysql/mysql.conf.d/mysqld.cnf个文件。然后找到以下行:

sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

并将其替换为

sql-mode=""

并重启MySQL:service mysql restart