#1005 - 无法创建表格,我查看了其中的每一件小事......无



这是代码:

 CREATE TABLE phone
(
ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name varchar(15) not null,
Stock VARCHAR(15) NOT NULL,
FK_manufacturerid INT NOT NULL, 
INDEX (FK_manufacturerid), 
FOREIGN KEY(FK_manufacturerid) REFERENCES manufacturer (manufacturerid)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
FK_osid INT NOT NULL, 
INDEX (FK_osid), 
FOREIGN KEY(FK_osid) REFERENCES os (osid)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
Camera varchar(15) not null,
Handset varchar(15) not null,
Screen varchar(15) not null,  
Connectivity varchar(15) not null,
BatteryLife varchar(15) not null,
Memory varchar(15) not null,
Messaging varchar(15) not null,
SoundFormat varchar(15) not null,
Price int(5) not null,
Flag varchar(3) not null
)ENGINE=InnoDB

我是php的新手(我很讨厌它),我真的不明白这里的问题是什么。。。请帮帮我:)

这个问题意味着这是一个外键问题-您是否检查了所有引用的表和字段都存在,并且在需要它们的地方有索引?看看这个问题,它可能会让你明白类似的问题。

您确定作为外键引用的其他表已经创建吗?

作为外键引用的列必须存在于数据库和引用的表中。

我刚刚在SQL Fiddle上使用了以下内容,它很有效:

create table manufacturer
(
  manufacturerid INT NOT NULL AUTO_INCREMENT PRIMARY KEY
) ;
create table os
(
  osid INT NOT NULL AUTO_INCREMENT PRIMARY KEY
) ;
CREATE TABLE phone
(
  ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  Name varchar(15) not null,
  Stock VARCHAR(15) NOT NULL,
  FK_manufacturerid INT NOT NULL, 
  FK_osid INT NOT NULL, 
  Camera varchar(15) not null,
  Handset varchar(15) not null,
  Screen varchar(15) not null,  
  Connectivity varchar(15) not null,
  BatteryLife varchar(15) not null,
  Memory varchar(15) not null,
  Messaging varchar(15) not null,
  SoundFormat varchar(15) not null,
  Price int(5) not null,
  Flag varchar(3) not null,
  INDEX (FK_manufacturerid), 
  FOREIGN KEY(FK_manufacturerid) REFERENCES manufacturer (manufacturerid)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  INDEX (FK_osid), 
  FOREIGN KEY(FK_osid) REFERENCES os (osid)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION
)ENGINE=InnoDB;

请参阅SQL Fiddle演示

最新更新