我在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;
但是当我试图删除国家表时,它允许删除那个表。但是Agent表还在数据库中
我认为这些表之间的外键引用没有正确实现。我怎样才能解决这个问题呢?
我不熟悉mysql。我熟悉MS SQL Server,以前没有遇到过这样的问题。
需要在引用前添加外键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;