phpMyadmin - 错误#1064

时间:2011-01-13 10:34:40

标签: mysql phpmyadmin mysql-error-1064

尝试在我的数据库中创建此表时,出现错误:

  

#1064 - 您的SQL语法出错;检查手册   对应于您的MySQL服务器   用于正确语法的版本   'unsigned NOT NULL default'0'附近,   PRIMARY KEY(reminder_id),KEY   reminder_id(第5行的rem'

CREATE TABLE reminder_events (
reminder_id bigint(20) unsigned NOT NULL auto_increment,
reminder_name varchar(255) NOT NULL default '',
reminder_desc text,
reminder_date varchar(8) unsigned NOT NULL default '0',
PRIMARY KEY (reminder_id),
KEY reminder_id (reminder_id)
) TYPE=MyISAM;

谁能看到我做错了什么?

3 个答案:

答案 0 :(得分:2)

问题在于您尝试将文本字段(varchar)定义为无符号,这只能应用于数字字段。

即:“reminder_date varchar(8) unsigned NOT NULL default '0',”毫无意义。

但是,由于该字段被称为“reminder_date”,我猜你正试图存储一个日期,在这种情况下你真的想要使用MySQL的DATE字段类型。

例如:“reminder_date DATE NOT NULL,

此外,如果您想要搜索任何这些字段,还应添加一些索引以加快搜索速度。因此,如果您希望能够搜索姓名和日期,可以使用:

CREATE TABLE reminder_events (
reminder_id bigint(20) unsigned NOT NULL auto_increment,
reminder_name varchar(255) NOT NULL DEFAULT '',
reminder_desc text,
reminder_date DATE NOT NULL,
PRIMARY KEY (reminder_id),
KEY reminder_id (reminder_id),
KEY reminder_name (reminder_name),
KEY reminder_date (reminder_date)
) TYPE=MyISAM;

答案 1 :(得分:2)

只需删除未签名。

CREATE TABLE reminder_events (
reminder_id bigint(20) unsigned NOT NULL auto_increment,
reminder_name varchar(255) NOT NULL default '',
reminder_desc text,
reminder_date varchar(8) NOT NULL default '0',
PRIMARY KEY (reminder_id),
KEY reminder_id (reminder_id)
) TYPE=MyISAM;

答案 2 :(得分:0)

撰写ENGINE代替TYPE

CREATE TABLE reminder_events (
reminder_id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
reminder_name VARCHAR(255) NOT NULL DEFAULT '',
reminder_desc TEXT,
reminder_date VARCHAR(8) NOT NULL DEFAULT '0',
PRIMARY KEY (reminder_id),
KEY reminder_id (reminder_id)
) ENGINE=MYISAM;