-1

現在、作成したデータベースに大量のダミー情報を入力しようとしています。

これはテーブルの 1 つです。

SET foreign_key_checks = 0;
CREATE TABLE Staff
(
Staff_ID            INTEGER(5) PRIMARY KEY AUTO_INCREMENT, 
Local_ID            INTEGER(5), 
First_name          VARCHAR(20) NOT NULL,
Last_name           VARCHAR(20) NOT NULL,
Email               VARCHAR(30) NOT NULL,
Telephone           INTEGER(15) NOT NULL,
Date_employed           DATE NOT NULL,
Salary              DECIMAL NOT NULL,
Sales_ID            INTEGER(5),
Manager_ID          INTEGER(5),
Development_ID          INTEGER(5),
FOREIGN KEY (Local_ID)      REFERENCES LocalOffice(Local_ID),
FOREIGN KEY (Sales_ID)      REFERENCES Sales_Advisors(Sales_ID),
FOREIGN KEY (Manager_ID)    REFERENCES Site_Manager(Manager_ID),
FOREIGN KEY (Development_ID)    REFERENCES Development(Development_ID)
);
SET foreign_key_checks = 1;

そして、これがデータを送信できる唯一の方法です:

INSERT INTO Staff VALUES 
(null, null, 'Sean', 'D', 'UP62@mac.uk', '07411557877', '2012-10-08', 80000.00,null,null,null);

代わりに int 値を入れようとすると、次のようになります。

INSERT INTO Staff VALUES 
(null,1, 'Luke', 'Clifford', 'UP624715@myport.ac.uk', '07411557077', '2012-10-08', 80000.00,1,1,1);

エラー:

#1452 - 子行を追加または更新できません: 外部キー制約が失敗します (`happy_homes`.`staff`, CONSTRAINT `staff_ibfk_1` FOREIGN KEY
(`Local_ID`) REFERENCES `localoffice` (`Local_ID`))

誰でも助けてくれますか

4

1 に答える 1

1

テーブル内に最初のデータを挿入LocalOfficeすると、クエリが機能します。整数値はLocalOffice、テーブルに挿入する前にテーブル内に存在する必要がありStaffます。

それは明らかに外部キーであると言っています

FOREIGN KEY (Local_ID)      REFERENCES LocalOffice(Local_ID)
于 2013-04-29T07:27:20.627 に答える