0

我在 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,以前没有遇到过这样的问题。

4

1 回答 1

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;
于 2012-12-25T17:20:02.430 回答