我在mysql数据库中创建了2个表。我使用了以下代码。
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 :(得分: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;