Mysql 表中不存在键列“cat_id”
我有一张桌子 以及有 和另一个带有 我尝试使用以下方法在产品类别上添加外键:Mysql 表中不存在键列“cat_id”,mysql,Mysql,我有一张桌子 以及有 和另一个带有 我尝试使用以下方法在产品类别上添加外键: ALTER TABLE product_category ADD FOREIGN KEY (cat_id) REFERENCES categories(cat_id) 问题出在哪里?您必须先在表中添加cat_id,然后尝试添加外键引用 alter table Table_name add col_name data_type constraints 必须首先在表中添加cat_id,然后尝试添加外键引用 alter
ALTER TABLE product_category
ADD FOREIGN KEY (cat_id)
REFERENCES categories(cat_id)
问题出在哪里?您必须先在表中添加cat_id,然后尝试添加外键引用
alter table Table_name
add col_name data_type constraints
必须首先在表中添加cat_id,然后尝试添加外键引用
alter table Table_name
add col_name data_type constraints
表产品类别没有cat_id字段,因此无法添加引用。 添加与Category.cat_id具有相同数据类型的字段,然后重试 你用什么?请记住,MyISAM不支持
我猜pkey应该是prod_id的参考?将其命名为prod\u id或类似的名称可以更清楚地显示其引用的内容。您的表产品类别没有cat\u id字段,因此无法添加引用。 添加与Category.cat_id具有相同数据类型的字段,然后重试 你用什么?请记住,MyISAM不支持
我猜pkey应该是prod_id的参考?将其命名为prod\u id或类似的名称会使其引用的内容更清晰。您的表产品类别不包含您在查询中指定的列。。 添加它并运行此查询
查询没有问题。您的表产品类别不包含您在查询中指定的列。。 添加它并运行此查询
查询没有问题。问题是您的表被称为单数类别,并且您试图引用复数类别的表,除此之外,您没有使用表产品类别中的字段名 请参见下面的示例,该示例实现了您想要的功能。我已经更改了product_category中的字段名称,以便更清楚地知道在何处使用什么
mysql> create table category (cat_id int, category varchar(200));
Query OK, 0 rows affected (0.39 sec)
mysql> create table products (prod_id int, product varchar(200));
Query OK, 0 rows affected (0.40 sec)
mysql> create table product_category (pc_prod_id int, pc_cat_id int);
Query OK, 0 rows affected (0.13 sec)
mysql> alter table product_category add foreign key (pc_cat_id) references category(cat_id);
Query OK, 0 rows affected (0.42 sec)
Records: 0 Duplicates: 0 Warnings: 0
问题是您的表被称为category singular,您试图引用表categories复数,而且您没有使用表product_category中的字段名 请参见下面的示例,该示例实现了您想要的功能。我已经更改了product_category中的字段名称,以便更清楚地知道在何处使用什么
mysql> create table category (cat_id int, category varchar(200));
Query OK, 0 rows affected (0.39 sec)
mysql> create table products (prod_id int, product varchar(200));
Query OK, 0 rows affected (0.40 sec)
mysql> create table product_category (pc_prod_id int, pc_cat_id int);
Query OK, 0 rows affected (0.13 sec)
mysql> alter table product_category add foreign key (pc_cat_id) references category(cat_id);
Query OK, 0 rows affected (0.42 sec)
Records: 0 Duplicates: 0 Warnings: 0
这里是应该如何修复的: 我们有两张桌子
table1( id_table1 int primary key, field int)ENGINE=INNODB;
table2( id_table2 int primary key, id_table1 int, field2 int)ENGINE=INNODB;
如果要将表1的主键放入表2中,则必须在中声明
表2 id\u表1
如下所示:id\u table1整数
然后写下您的外键ID\u表1引用表1ID\u表1这里是如何修复的: 我们有两张桌子
table1( id_table1 int primary key, field int)ENGINE=INNODB;
table2( id_table2 int primary key, id_table1 int, field2 int)ENGINE=INNODB;
如果要将表1的主键放入表2中,则必须在中声明
表2 id\u表1
如下所示:id\u table1整数
然后编写外键ID\u表1引用表1ID\u表1