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;

しかし、国のテーブルを削除しようとすると、そのテーブルを削除できます。しかし、エージェント テーブルはまだデータベースにあります。

これらのテーブル間で外部キー参照が適切に実装されていないと思います。どうすればこの問題を解決できますか。

私はmysqlに精通していません。私は MS SQL Server に精通しており、以前はそのような問題に直面したことはありませんでした。

4

1 に答える 1

0

外部キーを実装するには、参照の前に外部キー f​​k_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 に答える