希望将`users`表中的empID用于`leave`表

时间:2013-04-22 04:17:26

标签: mysql

我在phpmysql.i中比较新,需要一些帮助...

我有两张表usersleave。在users表中我有以下列

  1. EMPID(int)的
  2. 用户名(VARCHAR)
  3. 密码(VARCHAR)
  4. MAC(VARCHAR)
  5. IP(VARCHAR)
  6. 并且在leave表中我有以下列

    1. 盖(int)的
    2. empname(VARCHAR)
    3. 用户名(VARCHAR)
    4. 点头(int)的
    5. SDATE(日期)
    6. EDATE(日期)
    7. 原因(VARCHAR)
    8. 动作(VARCHAR)
    9. 现在我想在empID table中使用leave。我可以使用它吗。我不得不说我已经应用了一个代码但是它没有工作。它给出了以下错误.. < / p>

      1072 - 表

      中不存在键列'empID'

      和代码

      create table `leave`(
      lid INT NOT NULL AUTO_INCREMENT,
      empname VARCHAR(255) NOT NULL,
      username VARCHAR(255) NOT NULL,
      nod INT NOT NULL,
      sdate DATE,
      edate DATE,
      reason VARCHAR(255) NOT NULL,
      PRIMARY KEY(lid),
      FOREIGN KEY(empID) REFERENCES users(empID)
      );  
      

      所以有什么不对......请帮帮我..

2 个答案:

答案 0 :(得分:2)

create table `leave`(
lid INT NOT NULL AUTO_INCREMENT,
empname VARCHAR(255) NOT NULL,
username VARCHAR(255) NOT NULL,
nod INT NOT NULL,
sdate DATE,
edate DATE,
reason VARCHAR(255) NOT NULL,
PRIMARY KEY(lid),
FOREIGN KEY(empID) REFERENCES users(empID)
);

应该是

create table `leave`(
lid INT NOT NULL AUTO_INCREMENT,
empID int, // here you need one like this
empname VARCHAR(255) NOT NULL,
username VARCHAR(255) NOT NULL,
nod INT NOT NULL,
sdate DATE,
edate DATE,
reason VARCHAR(255) NOT NULL,
PRIMARY KEY(lid),
FOREIGN KEY(empID) REFERENCES users(empID)
);

您错过了empID列。

答案 1 :(得分:1)

用于创建 leave 表的SQL包含用于创建外键关系的正确位:

FOREIGN KEY(empID) REFERENCES users(empID)

但是这只会根据empID列创建表之间的关系。它不会为您创建empID列!您还需要上面一行,以在 leave 表中定义empID列,如下所示:

create table `leave`(
lid INT NOT NULL AUTO_INCREMENT,
empID INT NOT NULL,
empname ...
... more lines ,
FOREIGN KEY(empID) REFERENCES users(empID)