我有一个表,其中有3个属性作为主键产品:primary key(PRODUCT_NAME
,Category
,PRODUCT_TYPE
)。
现在我在另一个表中引用这个复合主键
order_details:外键(product_name,product_type,category)引用产品(product_name,product_type,category)
然而,我在控制台中得到一个错误,说缺少括号,我无法添加外键。但是,如果只在引用中添加两个列名(例如:“FOREIGN key(product_name,product_type,category)references product_name,product_type)”),查询不会给出错误。
请帮我解决这个问题。请在下面找到我的代码
CREATE TABLE `products` ( `product_name` varchar(45) NOT NULL, `product_type` varchar(45) NOT NULL, `category` varchar(45) NOT NULL, `product_desc` varchar(150) DEFAULT NULL, `unit_price` int(11) NOT NULL, `supplier_id` int(11) NOT NULL, `units_in_stock` int(11) NOT NULL, PRIMARY KEY (`product_name`,`category`,`product_type`), INDEX (product_name,category,product_type), CONSTRAINT `supplier_prod_table_fkey` FOREIGN KEY (`supplier_id`) REFERENCES `supplier` (`supplier_id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=INNODB; CREATE TABLE `order_details` ( `order_id` int(11) NOT NULL AUTO_INCREMENT, `product_name` varchar(45) NOT NULL, `product_type` varchar(45) NOT NULL, `category` varchar(45) NOT NULL, `quantity` int(11) DEFAULT NULL, CONSTRAINT `orderid_fkey` FOREIGN KEY (`order_id`) REFERENCES `orders` (`order_id`) ON DELETE NO ACTION ON UPDATE NO ACTION, PRIMARY KEY (`order_id`,`product_name`,`product_type`,`category`), INDEX (product_name,product_type,category), foreign key(product_name,product_type,category) references products(product_name,product_type,category) );
引用
和对应索引中的字段在这两个表中必须按照相同的顺序排列,即(product_name,category,product_type)
。
CREATE TABLE `order_details` (
`order_id` int(11) NOT NULL AUTO_INCREMENT,
`product_name` varchar(45) NOT NULL,
`product_type` varchar(45) NOT NULL,
`category` varchar(45) NOT NULL,
`quantity` int(11) DEFAULT NULL,
CONSTRAINT `orderid_fkey` FOREIGN KEY (`order_id`) REFERENCES `orders`
(`order_id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
PRIMARY KEY (`order_id`,`product_name`,`product_type`,`category`),
INDEX (product_name,category,product_type),
FOREIGN KEY(product_name,category,product_type) REFERENCES products(product_name,category,product_type)
);
很简单地说,我有 假设我每个有3000个 创建新的
问题内容: 我有一个看起来像这样的复合组件: 我希望能够添加一个可选的“侦听器”属性,如果定义了该属性,则会将事件侦听器添加到我的f:ajax中,但是我在弄清楚如何完成此操作时遇到了麻烦。任何帮助,将不胜感激。 问题答案: 您需要指定标签的属性,以便将属性值视为方法表达式。您可以使用JSTL视图构建时间标记来有条件地添加标记。 (因为EL不能正常工作,所以会将属性作为值表达式隐式评估) 然后,您可
我有以下MySQL表。这里的思想是轨道和课程是主键。并且轨道中的一个航向可能依赖于“同一轨道”中的另一个航向,因此我在(,)上创建了一个复合FK 但我在“depends_on_course_id column”中得到的结果都是空的,我猜getTrackCourse方法的映射有问题,但我不知道是什么?非常感谢任何帮助。
我创建了一个带有主键(UsersID、AccountsID)的帐户/用户表,如下所示。我是否应该为Users表添加索引?
问题 如果我像下面的例子一样使用属性访问类型,我是否也必须为引用的FK定义getter和setter? 我不认为是这样,但Java EE6的官方文档是这样做的。 null
当目标实体使用复合连接时,其中一列是使用转换器的自定义类型,Hibernate(使用Spring Boot JPA)无法插入。 简化实体定义: converter类使用简单的字符串操作,TableId类实现可序列化。从Spring Boot应用程序的上下文中保存元素时,出现以下异常: 我验证了将列更改为简单字符串可以解决问题。我还应该应用什么来使其与此连接查询一起工作吗?