-4

テーブルの作成自体を行っている間に外部キーを追加することは可能だと誰が言えるでしょうか。つまり、クエリを使用せずに外部キーを作成するということです。

私の質問は: 次のように、クエリを使用して 2 つのテーブルを作成できます。

CREATE TABLE person (
   id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
   name CHAR(60) NOT NULL,
   PRIMARY KEY (id)
  );


CREATE TABLE shirt (
  id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
  style ENUM('t-shirt', 'polo', 'dress') NOT NULL,
  color ENUM('red', 'blue', 'orange', 'white', 'black') NOT NULL,
  owner SMALLINT UNSIGNED NOT NULL REFERENCES person(id),
  PRIMARY KEY (id)
 );

phpmyadmin を使用して同じものを作成することは可能ですか?

4

2 に答える 2

1

もちろん

CREATE TABLE parent (
    id INT NOT NULL,
    PRIMARY KEY (id)
) ENGINE=INNODB;

CREATE TABLE child (
    id INT, 
    parent_id INT,
    INDEX par_ind (parent_id),
    FOREIGN KEY (parent_id) 
        REFERENCES parent(id)
        ON DELETE CASCADE
) ENGINE=INNODB;

ソース

于 2013-09-24T12:27:00.037 に答える
0

Foreign key2 つのテーブル (TableA と TableB など) のデータ間のリンクを確立して適用するために使用される列または列の組み合わせです。

リンクする列を含む TableA が既に存在する限り、外部キーを使用して TableB を作成しても問題はありません。

次の例のように、列 P_Id がテーブル Persons に存在する限り、FK を作成できます。

CREATE TABLE Orders
(
O_Id int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
P_Id int FOREIGN KEY REFERENCES Persons(P_Id) 
)
于 2013-09-24T12:25:44.740 に答える