0

これはコードです:

 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の初心者です(私はそれが嫌いです...たくさん)、ここで何が問題なのか本当にわかりません...助けてください:)

4

2 に答える 2

0

この質問は、それが外部キーの問題であることを意味します-参照されているすべてのテーブルとフィールドが存在し、それらを必要とするインデックスがあることを確認しましたか?その質問を見てください、それはあなたの似たような問題にいくらかの光を当てるかもしれません。

于 2013-02-05T21:16:42.923 に答える
0

外部キーとして参照している他のテーブルが作成されていることを確認しますか?

外部キーとして参照している列は、データベースと参照しているテーブルに存在する必要があります。

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;

SQLFiddleデモを参照してください

于 2013-02-05T21:16:56.120 に答える