mysql - 创建数据库

标签 mysql sql database foreign-keys

CREATE TABLE EMPLOYEE
( Fname VARCHAR(15) NOT NULL,
Minit CHAR,
Lname VARCHAR(15) NOT NULL,
Ssn CHAR(9) NOT NULL,
Bdate DATE,
Address VARCHAR(30),
Sex CHAR,
Salary DECIMAL(10,2),
Super_ssn CHAR(9),
Dno INT NOT NULL,
PRIMARY KEY (Ssn),
FOREIGN KEY (Super_ssn) REFERENCES EMPLOYEE(Ssn),
FOREIGN KEY (Dno) REFERENCES DEPARTMENT(Dnumber) );

CREATE TABLE DEPARTMENT
( Dname VARCHAR(15) NOT NULL,
Dnumber INT NOT NULL,
Mgr_ssn CHAR(9) NOT NULL,
Mgr_start_date DATE,
PRIMARY KEY (Dnumber),
UNIQUE (Dname),
FOREIGN KEY (Mgr_ssn) REFERENCES EMPLOYEE(Ssn) );

CREATE TABLE DEPT_LOCATIONS
( Dnumber INT NOT NULL,
Dlocation VARCHAR(15) NOT NULL,
PRIMARY KEY (Dnumber, Dlocation),
FOREIGN KEY (Dnumber) REFERENCES DEPARTMENT(Dnumber) );

CREATE TABLE PROJECT
( Pname VARCHAR(15) NOT NULL,
Pnumber INT NOT NULL,
Plocation VARCHAR(15),
Dnum INT NOT NULL,
PRIMARY KEY (Pnumber),
UNIQUE (Pname),
FOREIGN KEY (Dnum) REFERENCES DEPARTMENT(Dnumber) );

CREATE TABLE WORKS_ON
( Essn CHAR(9) NOT NULL,
Pno INT NOT NULL,
Hours DECIMAL(3,1) NOT NULL,
PRIMARY KEY (Essn, Pno),
FOREIGN KEY (Essn) REFERENCES EMPLOYEE(Ssn),
FOREIGN KEY (Pno) REFERENCES PROJECT(Pnumber) );

CREATE TABLE DEPENDENT
( Essn CHAR(9) NOT NULL,
Dependent_name VARCHAR(15) NOT NULL,
Sex CHAR,
Bdate DATE,
Relationship VARCHAR(8),
PRIMARY KEY (Essn, Dependent_name),
FOREIGN KEY (Essn) REFERENCES EMPLOYEE(Ssn) );

这里我无法创建任何表,因为每个表都使用外键约束引用其他表。所以请帮助我如何创建整个数据库。例如。如果我正在创建 EMPLOYEE 表,它正在搜索 DEPARTMENT 表,并且不允许创建该表,并且我尝试创建 DEPARTMENT,那么它会再次搜索 EMPLOYEE 表,不允许创建该表。

最佳答案

您可以尝试创建和填充没有外键约束的表,然后添加外键约束。

关于mysql - 创建数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26584868/

相关文章:

mysql - 如何使用带有哈希密码 (bcrypt) 的 JSON 文件为数据库添加种子?

mysql - 选择有差异的查询

sql - SQL Server 数据库中的枚举

c# - 简单的建议在哪里保存设置

MySQL 与 DB2 Express-C

mysql - 我如何创建一个高效的 MySQL 数据库来自动完成像谷歌这样的请求

mysql - 将mysql数据库转移到新服务器

mysql - “PDOException”,消息为“SQLSTATE[HY000] [2002] 没有到主机的路由

sql - 获取月份的最后一天 (SQL Server 2008R2)

java - 使用数据库查询更新 JTable