当前位置:数据库 > MySQL >>

MYSQL建表报错

CREATE TABLE Company.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, Salay 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) ); ************************************************* 错误提示是: Error Code: 1005. Can't create table 'company.employee' (errno: 150) 求助各位大侠,为什么啊?
补充:我把
 FOREIGN KEY(Super_ssn) REFERENCES EMPLOYEE(Ssn),
   FOREIGN KEY(Dno) REFERENCES DEPARTMENT(Dnumber)
这连个REFERENCES约束去掉后就能运行了
很奇怪 是为什么呢
追问:还是不行诶

ERROR 1103 (42000): Incorrect table name 'EMPLOYEE '我建的COMPANY是一个空的SCHEMA诶,EMPLOYEE是第一个表啊?
我把
 FOREIGN KEY(Super_ssn) REFERENCES EMPLOYEE(Ssn),
   FOREIGN KEY(Dno) REFERENCES DEPARTMENT(Dnumber)
这2个REFERENCES约束去掉后就能运行了嗯?那怎么办呢?mysql>   KEY `Dno` (`Dnumber`);
ERROR 1064 (42000): 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 'KEY `
Dno` (`Dnumber`)' at line 1

是这样写么??还是不行啊进入了啊。use Company嗯。是不存在啊。
DEPARTMENT的表我还没有建立,Dnumber确实也不存在。
不存在就不能在现在设立外键参照么?
答案:Company应该是你的库吧,建表的时候不需要带上库名
只要在本库下运行sql语句就可以,你试下下面的语句
创建一个EMPLOYEE的表

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,
   `Salay`     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)
   );
其他:添加外键的表名不行??

建议你用图形化工具创建表。

像navicat。。 你说EMPLOYEE是第一个表的话肯定建不起来的,因为要引用DEPARTMENT表的Dnumber字段,如果外键找不到被引用的表和字段,会报1005,errno 150错误的。
所以你得先建DEPARTMENT表

好的习惯是,所有表都建好了之后再增加外键约束。没有必要写进建表语句的。 

上一个:我用我的电脑搭建了数据库,那么其他人在没有mysql的情况下,可以访问我的数据库么?
下一个:如何用mysqldump备份discuz x2.5的数据库。

Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,