0

我在mysql數據庫裏面創建了2個表。我爲此使用了以下代碼。如何使用mysql實現關係數據庫

CREATE TABLE Country 
(
    CountryID VARCHAR(8) PRIMARY KEY, 
    CountryName VARCHAR(15) UNIQUE NOT NULL 
)ENGINE=INNODB; 

CREATE TABLE Agent 
(
    AgentNo VARCHAR(10) PRIMARY KEY, 
    AgentName VARCHAR(50) UNIQUE NOT NULL, 
    AddNo VARCHAR(8) NOT NULL, 
    Street VARCHAR(25) NOT NULL, 
    City VARCHAR(20) NOT NULL, 
    ContactPerson VARCHAR(20), 
    Email VARCHAR(40), 
    CountryID VARCHAR(8) NOT NULL REFERENCES Country(CountryID) 
)ENGINE=INNODB; 

但是當我嘗試刪除Country表允許它丟棄表。但代理表仍在數據庫中。

我認爲外鍵引用沒有正確實現這些表之間。我怎麼解決這個問題。

我不熟悉mysql。我熟悉MS SQL Server,並且我沒有遇到像以前那樣的問題。

+0

什麼是你的頭銜是什麼意思? MySQL是一個關係數據庫。 – Barmar

回答

0

你需要添加外鍵fk_country_id(CountryID)引用之前實現外鍵:

CREATE TABLE Agent 
(
    AgentNo VARCHAR(10) PRIMARY KEY, 
    AgentName VARCHAR(50) UNIQUE NOT NULL, 
    AddNo VARCHAR(8) NOT NULL, 
    Street VARCHAR(25) NOT NULL, 
    City VARCHAR(20) NOT NULL, 
    ContactPerson VARCHAR(20), 
    Email VARCHAR(40), 
    CountryID VARCHAR(8) NOT NULL, 
    foreign key fk_country_id(CountryID) REFERENCES Country(CountryID) 
)ENGINE=INNODB; 
+0

謝謝。我現在會嘗試。 – Shashika

+0

或者您可以在您的代碼後面寫入ALTER TABLE'agent' ADD CONSTRAINT'agent_ibfk_1' FOREIGN KEY('CountryID')REFERENCES'country'('CountryID'); – Anton

+0

@微博 - 謝謝。它工作。 – Shashika