数据库建表时候总是报错:Can't create table '.\s\store.frm' (errno: 150)我感觉有点儿像是外键或者数据类型是不是不匹配,可是改了之后还是不管用吖!!
我纠结了很久了,望大家帮帮忙!!!
以下是代码————CREATE DATABASE q;
use q;
CREATE TABLE Supplier (
supplierID char(6) not null primary key,
sName varchar(50) not null,
contactPerson varchar(8) not null,
phone varchar(11) not null,
address varchar(50) not null,
openingBank varchar(40) null,
accountID varchar(15) null);
CREATE TABLE Goods (
goodsID char(6) not null primary key,
supplierID char(6) not null,
gName varchar(80) not null,
barCode varchar(15) not null,
metricUnit varchar(4) not null,
kind varchar(8) null,
birthPlace varchar(50) null,
unitCost double not null,
foreign key (supplierID) REFERENCES Supplier(supplierID)
);CREATE TABLE Store(
goodsID char(6) not null primary key,
gName varchar(80) not null,
storeNum int(4) not null,
foreign key (goodsID) REFERENCES Goods(goodsID)
);PS:错误出现在Store表,总是建立失败!!!
我纠结了很久了,望大家帮帮忙!!!
以下是代码————CREATE DATABASE q;
use q;
CREATE TABLE Supplier (
supplierID char(6) not null primary key,
sName varchar(50) not null,
contactPerson varchar(8) not null,
phone varchar(11) not null,
address varchar(50) not null,
openingBank varchar(40) null,
accountID varchar(15) null);
CREATE TABLE Goods (
goodsID char(6) not null primary key,
supplierID char(6) not null,
gName varchar(80) not null,
barCode varchar(15) not null,
metricUnit varchar(4) not null,
kind varchar(8) null,
birthPlace varchar(50) null,
unitCost double not null,
foreign key (supplierID) REFERENCES Supplier(supplierID)
);CREATE TABLE Store(
goodsID char(6) not null primary key,
gName varchar(80) not null,
storeNum int(4) not null,
foreign key (goodsID) REFERENCES Goods(goodsID)
);PS:错误出现在Store表,总是建立失败!!!
按照您的推理,前两个表没有出错吖,第三表应该是能成功的,可是为什么它就是不成功呢?还有突然想到了第三个表我少加了
foreign key (gName) REFERENCES Goods(gName)
加上之后还是第三个表不能建立吖!!!
mysql> CREATE TABLE Supplier (
-> supplierID char(6) not null primary key,
-> sName varchar(50) not null,
-> contactPerson varchar(8) not null,
-> phone varchar(11) not null,
-> address varchar(50) not null,
-> openingBank varchar(40) null,
-> accountID varchar(15) null
->
-> );
Query OK, 0 rows affected (0.16 sec)mysql> CREATE TABLE Goods (
-> goodsID char(6) not null primary key,
-> supplierID char(6) not null,
-> gName varchar(80) not null,
-> barCode varchar(15) not null,
-> metricUnit varchar(4) not null,
-> kind varchar(8) null,
-> birthPlace varchar(50) null,
-> unitCost double not null,
-> foreign key (supplierID) REFERENCES Supplier(supplierID)
-> );
Query OK, 0 rows affected (0.13 sec)mysql> CREATE TABLE Store(
-> goodsID char(6) not null primary key,
-> gName varchar(80) not null,
-> storeNum int(4) not null,
-> foreign key (goodsID) REFERENCES Goods(goodsID)
-> );
Query OK, 0 rows affected (0.11 sec)mysql>
+----------+---------------------------------
---------------------------------------------
---------------------------------------------
---------------------------------------------
---------------------------------------+
| Table | Create Table |
+----------+---------------------------------
---------------------------------------------
---------------------------------------------
---------------------------------------------
---------------------------------------+
| Supplier | CREATE TABLE `supplier` (
`supplierID` char(6) NOT NULL,
`sName` varchar(50) NOT NULL,
`contactPerson` varchar(8) NOT NULL,
`phone` varchar(11) NOT NULL,
`address` varchar(50) NOT NULL,
`openingBank` varchar(40) DEFAULT NULL,
`accountID` varchar(15) DEFAULT NULL,
PRIMARY KEY (`supplierID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+----------+---------------------------------
---------------------------------------------
---------------------------------------------
---------------------------------------------
---------------------------------------+
1 row in set (0.06 sec)mysql>
我刚刚学习这个,不太清楚你说的是什么,我把错误结果给你吧~~谢谢了!执行的代码就是上面给出的
错误如下——mysql> source d:\s.sql
Query OK, 1 row affected (0.27 sec)Database changed
Query OK, 0 rows affected (0.09 sec)Query OK, 0 rows affected (0.08 sec)ERROR 1005 (HY000): Can't create table '.\ww\store.frm' (errno: 150)这样看就是第三个的问题吧!!!
我试了————| Supplier | CREATE TABLE `supplier` (
`supplierID` char(6) NOT NULL,
`sName` varchar(50) NOT NULL,
`contactPerson` varchar(8) NOT NULL,
`phone` varchar(11) NOT NULL,
`address` varchar(50) NOT NULL,
`openingBank` varchar(40) default NULL,
`accountID` varchar(15) default NULL,
PRIMARY KEY (`supplierID`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312 |默认表存储引擎是InnoDB吖!!可是为什么还是错误呢?