如何在phpmyadmin中创建外键

lau*_*ajs 11 php mysql database phpmyadmin

我想在我的病人桌上让doctorid成为一把外键.

所以我都创造了我的表的 - 的主要问题是,当我去到表>结构>关系视图只有主键来了,我可以创建一个外键(这已经是某个表的主键我想保留 - 即患者表患者可以更改,但医生Id-我也有医生表 - 未启用).

我在关系视图中有另外一个带有两个复合键(medicineid和patientid)的表,它可以让我改变它们

我是否必须将患者表中的医生ID索引转换为其他内容?两者都不能成为主键,因为患者ID是患者表的主要 - 医生是外国人.

表

我希望有人能提供帮助

亲切的问候

Jon*_*ory 18

你可以用老式的方式来做...用一个看起来像这样的SQL语句

ALTER TABLE table_name
    ADD CONSTRAINT fk_foreign_key_name
    FOREIGN KEY (foreign_key_name)
    REFERENCES target_table(target_key_name);
Run Code Online (Sandbox Code Playgroud)

这假设密钥已存在于相关表中


小智 16

为了能够创建关系,表存储引擎必须是InnoDB。您可以在操作选项卡中进行编辑。 存储引擎配置

然后,您需要确保主表中的id列已被索引。它应该出现在“结构”选项卡的“索引”部分。

索引列表

最后,您可以在“结构”选项卡中看到“关系视图”选项。编辑时,您将能够选择外部表中的父列来创建关系。

在此处输入图片说明

见附件。我希望这对任何人都有用。


Alo*_*tel 15

必须将密钥编入索引以应用外键约束.为此,请按照步骤操作.

  1. 打开表结构.(第二个标签)
  2. 请参阅最后一列操作,其中包含多个操作选项.单击Index,这将使列成为索引.
  3. 打开关系视图并添加外键约束.

您现在可以将DOCTOR_ID指定为外国人.


Yag*_*oja 8

创建一个categories表:

CREATE TABLE categories(
    cat_id int not null auto_increment primary key,
    cat_name varchar(255) not null,
    cat_description text
) ENGINE=InnoDB;
Run Code Online (Sandbox Code Playgroud)

创建products表和引用categories表:

CREATE TABLE products(
   prd_id int not null auto_increment primary key,
   prd_name varchar(355) not null,
   prd_price decimal,
   cat_id int not null,
   FOREIGN KEY fk_cat(cat_id)
   REFERENCES categories(cat_id)
   ON UPDATE CASCADE
   ON DELETE RESTRICT
)ENGINE=InnoDB;
Run Code Online (Sandbox Code Playgroud)

创建vendors表并修改products表:

CREATE TABLE vendors(
    vdr_id int not null auto_increment primary key,
    vdr_name varchar(255)
)ENGINE=InnoDB;
 
ALTER TABLE products 
ADD COLUMN vdr_id int not null AFTER cat_id;
Run Code Online (Sandbox Code Playgroud)

要将外键(引用vendors表)添加到products表中,请使用以下语句:

ALTER TABLE products
ADD FOREIGN KEY fk_vendor(vdr_id)
REFERENCES vendors(vdr_id)
ON DELETE NO ACTION
ON UPDATE CASCADE;
Run Code Online (Sandbox Code Playgroud)

如果您想删除该密钥,则:

ALTER TABLE table_name 
DROP FOREIGN KEY constraint_name;
Run Code Online (Sandbox Code Playgroud)


Sar*_*ikh 5

在 phpmyadmin 中,转到“结构”选项卡,选择“关系”视图,如下图所示。这里可以找到表格形式添加外键约束名称、当前表列、外键数据库、表和列

在此输入图像描述