我已经用头撞了两天了,终于寻求帮助。
我用最少的数据创建了两个测试表以保持简单,所以至少我有一些工作要做,并且想要创建第三个表,我可以用它来将数据拉入我的网站(我希望创建查询以后可以从不同的表中提取数据,但现在必须这样做)。
这是我为第一个 TABLE 导出的信息:
CREATE TABLE `about` (
`about_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
`about_title` varchar(50) NOT NULL,
`about_description` text NOT NULL,
`creator_id` smallint(5) unsigned NOT NULL,
`about_image` varchar(150) NOT NULL,
PRIMARY KEY (`about_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
INSERT INTO `about` (`about_id`, `about_title`, `about_description`, `creator_id`, `about_image`) VALUES
(1, 'Exciter', 'This is an awesome album', 1, 'images/depeche_mode_exciter.jpg'),
(2, 'Autobahn', 'This is a great album', 2, 'images/kraftwerk_autobahn.jpg');
这是我为第二个 TABLE 导出的信息:
CREATE TABLE `creator` (
`creator_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
`creator_name` varchar(50) NOT NULL,
PRIMARY KEY (`creator_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
INSERT INTO `creator` (`creator_id`, `creator_name`) VALUES
(1, 'Depeche Mode'),
(2, 'Kraftwerk');
这是我尝试用来创建一个新表的最新版本,它将 creator_id 转换为 Depeche 模式或艺术家在任何 creator_id 行上的任何内容:
CREATE TABLE `about_creator` (
`about_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
`about_title` varchar(50) NOT NULL,
`about_description` text NOT NULL,
`about_image` varchar(150) NOT NULL,
`creator_id` smallint(5) unsigned NOT NULL,
PRIMARY KEY (`about_id`)
FOREIGN KEY (`creator_id`) REFERENCES `creator` (`creator_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
现在说真的,它肯定不会变得更容易,但是每次我尝试它时,我都会收到以下错误:
#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 'FOREIGN KEY (`creator_id`) REFERENCES `creator` (`creator_id`) ) ENGINE=InnoDB ' at line 8
我正在从在 MAMP 2.0 版中运行的 phpMyAdmin 3.5.4 访问 PHP 5.4.4 版
非常感谢任何帮助。