如何在phpmyadmin中创建外键
How to create a foreign key in phpmyadmin
我想让 doctorid 成为我患者的外键 table。
所以我创建了所有 tables - 主要问题是当我转到 table > 结构 > 关系视图时,只有主键出现,我可以创建一个外键(它已经是我要保留的某个 table 的主键 - 即患者 table 患者可以更改但医生 ID - 我有一个医生 table 也- 未启用)。
我有另一个 table,在关系视图中有两个复合键(medicineid 和 patientid),它使我能够更改两者
我是否必须将患者 table 中的医生 ID 索引更改为其他内容?两者都不能是主键,因为患者 ID 是患者的主键 table - 医生是外国人。
希望大家帮帮忙
亲切的问候
你可以用老式的方式来做...用一个看起来像这样的 SQL 语句
ALTER TABLE table_1_name
ADD CONSTRAINT fk_foreign_key_name
FOREIGN KEY (table_1_column_name)
REFERENCES target_table(target_table_column_name);
例如:
如果您有 books
table 和 created_by
列,它指的是 users
中的 id
列 table:
ALTER TABLE books
ADD CONSTRAINT books_FK_1
FOREIGN KEY (created_by)
REFERENCES users(id);
这假设密钥已经存在于相关 table
键必须被索引才能应用外键约束。为此,请按照以下步骤操作。
- 打开table结构。 (第二个标签)
- 查看最后一列操作,其中有多个操作选项。单击 索引,这将使该列编入索引。
- 打开关系视图并添加外键约束。
您现在可以将 DOCTOR_ID 指定为外国人。
创建 categories
table:
CREATE TABLE categories(
cat_id int not null auto_increment primary key,
cat_name varchar(255) not null,
cat_description text
) ENGINE=InnoDB;
创建一个 products
table 并引用 categories
table:
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;
创建vendors
table并修改products
table:
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;
要将外键(引用 vendors
table)添加到 products
table,请使用以下语句:
ALTER TABLE products
ADD FOREIGN KEY fk_vendor(vdr_id)
REFERENCES vendors(vdr_id)
ON DELETE NO ACTION
ON UPDATE CASCADE;
如果您想删除该密钥,则:
ALTER TABLE table_name
DROP FOREIGN KEY constraint_name;
为了能够创建关系,table 存储引擎 必须是 InnoDB。您可以在 操作 选项卡中进行编辑。
然后,您需要确保主 table 中的 id 列已编入索引。它应该出现在 Index 部分 Structure 选项卡中。
最后,您可以在结构 选项卡中看到选项关系视图。编辑时,您将能够 select 外国 table 中的父列来创建关系。
见附件。我希望这对任何人都有用。
在 phpmyadmin 中,转到结构选项卡,select 关系视图,如下图所示。
在这里您可以找到表格形式来添加外键约束名称、当前 table 列、外键数据库、table 和列
我想让 doctorid 成为我患者的外键 table。
所以我创建了所有 tables - 主要问题是当我转到 table > 结构 > 关系视图时,只有主键出现,我可以创建一个外键(它已经是我要保留的某个 table 的主键 - 即患者 table 患者可以更改但医生 ID - 我有一个医生 table 也- 未启用)。
我有另一个 table,在关系视图中有两个复合键(medicineid 和 patientid),它使我能够更改两者
我是否必须将患者 table 中的医生 ID 索引更改为其他内容?两者都不能是主键,因为患者 ID 是患者的主键 table - 医生是外国人。
希望大家帮帮忙
亲切的问候
你可以用老式的方式来做...用一个看起来像这样的 SQL 语句
ALTER TABLE table_1_name
ADD CONSTRAINT fk_foreign_key_name
FOREIGN KEY (table_1_column_name)
REFERENCES target_table(target_table_column_name);
例如:
如果您有 books
table 和 created_by
列,它指的是 users
中的 id
列 table:
ALTER TABLE books
ADD CONSTRAINT books_FK_1
FOREIGN KEY (created_by)
REFERENCES users(id);
这假设密钥已经存在于相关 table
键必须被索引才能应用外键约束。为此,请按照以下步骤操作。
- 打开table结构。 (第二个标签)
- 查看最后一列操作,其中有多个操作选项。单击 索引,这将使该列编入索引。
- 打开关系视图并添加外键约束。
您现在可以将 DOCTOR_ID 指定为外国人。
创建 categories
table:
CREATE TABLE categories(
cat_id int not null auto_increment primary key,
cat_name varchar(255) not null,
cat_description text
) ENGINE=InnoDB;
创建一个 products
table 并引用 categories
table:
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;
创建vendors
table并修改products
table:
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;
要将外键(引用 vendors
table)添加到 products
table,请使用以下语句:
ALTER TABLE products
ADD FOREIGN KEY fk_vendor(vdr_id)
REFERENCES vendors(vdr_id)
ON DELETE NO ACTION
ON UPDATE CASCADE;
如果您想删除该密钥,则:
ALTER TABLE table_name
DROP FOREIGN KEY constraint_name;
为了能够创建关系,table 存储引擎 必须是 InnoDB。您可以在 操作 选项卡中进行编辑。
然后,您需要确保主 table 中的 id 列已编入索引。它应该出现在 Index 部分 Structure 选项卡中。
最后,您可以在结构 选项卡中看到选项关系视图。编辑时,您将能够 select 外国 table 中的父列来创建关系。
见附件。我希望这对任何人都有用。
在 phpmyadmin 中,转到结构选项卡,select 关系视图,如下图所示。 在这里您可以找到表格形式来添加外键约束名称、当前 table 列、外键数据库、table 和列