在执行insertQuery时,将Id设置为同一个表中的其他列

时间:2013-09-23 07:28:59

标签: mysql hibernate

嗨我有一个像

这样的MYSQL表
PART{
 part_id :long,Auto Increment
 parent_part_id :long
 root_part_id :long
}

我需要在这个表上执行Insert Query,其中root_part_id应该获得part_id的值。 在其他情况下,我知道父和根部分Id。但在插入根部分时,我需要这个查询。我知道有一个选项,我应该在这个插入查询后触发更新查询,但我需要一个查询中的解决方案。

1 个答案:

答案 0 :(得分:1)

您可以使用触发器:

DELIMITER $$
CREATE TRIGGER `before_insert_PART`
BEFORE INSERT ON `PART` FOR EACH ROW
BEGIN
        SET NEW.root_part_id = NEW.part_id;
END
$$
DELIMITER ;

PS,最好只使用小字符作为表名。它可能导致操作系统不兼容,Linux名称区分大小写,而且在Windows上 - 不是。