4

我正在使用我的程序中包含的 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 版本需要更改的内容。

非常感谢你的帮助!

而且我确定在我修复这个之后还会出现其他错误..

4

2 回答 2

7

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

 membership INT( 2 ) NOT NULL DEFAULT '',

 membership INT( 2 ) NOT NULL DEFAULT 0,

(0 或您想要该字段的任何默认值。)

于 2012-12-09T22:37:04.653 回答
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

于 2017-07-07T02:09:33.260 回答