-4

任何人都可以说是否可以在创建表时添加外键,我的意思是在不使用任何查询的情况下创建外键。

我的问题是:我可以使用查询创建两个表,如下所示:

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 key是用于在两个表(例如 TableA 和 TableB)中的数据之间建立和强制链接的列或列组合。

使用外键创建 TableB 没有问题,只要包含要链接的列的 TableA 已经存在。

如下例所示,您可以创建 FK,只要 P_Id 列存在于表 Persons 中。

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 回答