2013-03-27 45 views
0

目前我在mySQL数据库中有一个表,我想连接到另一个需要创建的表。第二个表格只有2列,即member_id和product列。产品列中有多个条目用于同一个member_ID,并且产品列将成为另一个表的外键。在mySQL中创建一个连接到上一个表的主键的新表

下面是SQL代码我用来创建初始的登录表:

'CREATE TABLE `members`( 
`member_id` int(11) unsigned NOT NULL AUTO_INCREMENT, 
`firstname` varchar(100) DEFAULT NULL, 
`lastname` varchar(100) DEFAULT NULL, 
`login` varchar(100) NOT NULL DEFAULT \'\', 
`passwd` varchar(32) NOT NULL DEFAULT \'\', 
PRIMARY KEY (`member_id`)) 
ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8' 

如果有人能告诉我如何创建第二个表连接到member_id那将是巨大的。

+0

您可以在其[文档页面](http://dev.mysql.com/doc/refman/5.5/en/create-table-foreign-keys.html)上阅读MySQL外键语法。正如其他人所提到的,创建表时需要使用InnoDB引擎,以便使用FK。 – Perception 2013-03-27 11:23:46

+0

尝试使用合并存储引擎,它结合了您的第一个和第二个表格 – vidyadhar 2013-03-27 12:15:22

回答

1

MyISAM存储引擎不支持外键。如果您想通过使用外键确保数据完整性您需要使用其他存储引擎,例如。 InnoDB的

使用MyISAM数据不能定义外键,但您仍可以定义表如下: http://sqlfiddle.com/#!2/4cb9c/1/0

请注意,创建索引,以保证不俗的表现为连接是非常重要的。如果你想使用InnoDB和外键,那么不需要显式创建索引,因为添加一个外键会创建一个隐式索引。

+0

问题可能在我回答后更新。我编辑了答案。现在应该更有帮助。 – 2013-03-27 11:36:06

相关问题