我正在使用我的程序中包含的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版本需要更改的内容。
非常感谢你的帮助!
我确定在修复此错误后会出现其他错误..
答案 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