2013-06-21 43 views
-2
CREATE TABLE employee_detail(
e_id int auto_increment, 
name varchar(20) not null, 
address varchar(20) not null, 
status varchar(200) not null, 
primary key (e_id),  
); 

这是我的第一个表(employee_login),我想E_ID在我的下一个表(login)以下如何使用外键作为另一个表的主键在mysql数据库中创建表?

CREATE TABLE login(
login_id int auto_increment, 
username varchar(20) not null, 
password varchar(20) not null, 
primary key (login_id), 
e_id references employee_detail(e_id) 
); 
+2

请显示您的代码至今 –

+0

您是否尝试过使用CREATE TABLE语句? –

回答

0

外键你可以像如下:

CREATE TABLE person (
    id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT, 
    name CHAR(60) NOT NULL, 
    PRIMARY KEY (id) 
); 

CREATE TABLE shirt (
    id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT, 
    style ENUM('t-shirt', 'polo', 'dress') NOT NULL, 
    color ENUM('red', 'blue', 'orange', 'white', 'black') NOT NULL, 
    owner SMALLINT UNSIGNED NOT NULL REFERENCES person(id), 
    PRIMARY KEY (id) 
); 

我希望你了解创建表代码。 ownershirt表中是外键引用idperson

0

你有几个错误。您在登录表中缺少e_id列,无法添加外键而不添加employee_detail的主键列(在本例中为e_id)。此外,您不能将密码用作列名,因为它是预先建立的查询,您需要使用其他类似“通过”的查询。

CREATE TABLE employee_detail(
e_id int auto_increment, 
name varchar(20) not null, 
address varchar(20) not null, 
status varchar(200) not null, 
primary key (e_id)); 

CREATE TABLE login(
login_id INT PRIMARY KEY AUTO_INCREMENT, 
username VARCHAR(20) NOT NULL, 
pass VARCHAR(20) NOT NULL, 
e_id INT, 
FOREIGN KEY (e_id) REFERENCES employee_detail(e_id) 
); 
相关问题