我正在开发一个应用程序,它需要在mysql服务器上设置所有表。但是我遇到了一个表的问题。这是查询:
CREATE TABLE IF NOT EXISTS emails (
'id' int(11) NOT NULL AUTO_INCREMENT,
'em_id' int(11) NOT NULL,
'cuenta' varchar(20) NOT NULL,
'link' text NOT NULL,
'fecha' timestamp NULL DEFAULT CURRENT_TIMESTAMP,
'conf' int(11) NOT NULL DEFAULT '0',
'confirmed' timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
'used' int(11) NOT NULL DEFAULT '0',
'used_time' timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY ('id','cuenta')
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
当我的应用程序运行时,我得到了这个:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''id' int(11) NOT NULL AUTO_INCREMENT,
'em_id' int(11) NOT NULL,
'cuenta' v' at line 2
我没有想法,请帮帮我。谢谢
答案 0 :(得分:7)
删除列标识符周围的引号。要么使用刻度线,要么根本不使用:
CREATE TABLE IF NOT EXISTS emails (
id int(11) NOT NULL AUTO_INCREMENT,
em_id int(11) NOT NULL,
cuenta varchar(20) NOT NULL,
link text NOT NULL,
fecha timestamp NULL DEFAULT CURRENT_TIMESTAMP,
conf int(11) NOT NULL DEFAULT '0',
confirmed timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
used int(11) NOT NULL DEFAULT '0',
used_time timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (id,cuenta)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
或
CREATE TABLE IF NOT EXISTS emails (
`id` int(11) NOT NULL AUTO_INCREMENT,
`em_id` int(11) NOT NULL,
`cuenta` varchar(20) NOT NULL,
`link` text NOT NULL,
`fecha` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`conf` int(11) NOT NULL DEFAULT '0',
`confirmed` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`used` int(11) NOT NULL DEFAULT '0',
`used_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`,`cuenta`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
答案 1 :(得分:2)
您应该使用反引号而不是单引号'
:
CREATE TABLE IF NOT EXISTS emails (
`id` int(11) NOT NULL AUTO_INCREMENT,
`em_id` int(11) NOT NULL,
`cuenta` varchar(20) NOT NULL,
`link` text NOT NULL,
`fecha` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`conf` int(11) NOT NULL DEFAULT '0',
`confirmed` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`used` int(11) NOT NULL DEFAULT '0',
`used_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`,`cuenta`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;