我有一个客户和产品的映射表。以下是步骤
create table `customer_products` (
`customer_id` bigint not null,
`product_id` bigint not null,
primary key (`customer_id`, `product_id`)
);
alter table `customer_products`
add constraint `FK7urin54lem7yxy6umxf899t16`
foreign key (`customer_id`)
references `customer` (`customer_id`);
alter table `customer_products`
add constraint `FKtfgjfwfykaef4wjk00ofyqq8y`
foreign key (`product_id`)
references `product` (`product_id`);
insert into customer_products values(7,5); //should get a contraint error
当我插入此映射表时,尽管父表中没有相应的条目,但我在上面的insert
语句中没有收到错误。我需要一些额外的选项来设置这个约束吗?
答案 0 :(得分:0)
这个approch并不好。 但要有解决方案。
You can write a trigger on customer_products and set 'before insert'
您需要编写更多的intaligent查询以插入记录不存在的父表中。
答案 1 :(得分:0)
我明白了。 JPA使用MyISAM引擎创建表,它不支持外键约束。因此,一旦我将引擎修改为InnoDB,问题就解决了。