0

我遇到问题时,我插入到tarifa_data。此表与translator_tarifes_data_facturaciotarifes_translator有关。在translator_tarifes_data_facturacio表我想保存这两个id关系tarifa_datatarifes_translator触发器插入相关表mysql

下面是设计表: table design http://project2be.com/stack/tables.png

在我创造了这个触发插入到translator_tarifes_data_facturacio每一行的ID的tarifa_data。这是触发:

USE `proje169_gl`; 
DELIMITER $$ 

CREATE TRIGGER `TRG_INSERT_id_init` AFTER INSERT ON `tarifa_data` FOR EACH ROW 
BEGIN 
    INSERT INTO translator_tarifes_data_facturacio (tarifa_data_id) VALUES (NEW.id); 
END 

当我插上tarifa_data例如INSERT INTO tarifa_data(id, data) VALUES ('1','2013-12-15 00:00:00')我得到这个错误:

#1452 - Cannot add or update a child row: a foreign key constraint fails (`proje169_gl`.`translator_tarifes_data_facturacio`, CONSTRAINT `fk_translator_tarifes_data_facturacio_tarifes_translator1` FOREIGN KEY (`tarifes_translator_id`) REFERENCES `tarifes_tra) 

任何想法?

编辑:这是整个表:

table design http://project2be.com/stack/tables1.png

回答

1

当插入到表translator_tarifes_data_facturacio您需要的值两列tarifa_data_idtarifes_translator_id

尝试:

DELIMITER $$ 

CREATE TRIGGER `TRG_INSERT_id_init` AFTER INSERT ON `tarifa_data` 
FOR EACH ROW 
BEGIN 
    INSERT INTO `tarifes_translator` (`id`) VALUES (NULL); 
    INSERT INTO `translator_tarifes_data_facturacio` (`tarifa_data_id`, `tarifes_translator_id`) VALUES (NEW.`id`, LAST_INSERT_ID()); 
END$$ 

DELIMITER ; 

SQL Fiddle demo

+0

但是,如果我有'translator_tarifes_data_facturacio'以同样的方式为'tarifes_translator'相关的另一个表,我该怎么办呢? – ganlub

+0

@acasanovas:如果您可以显示其他表格,以及与“translator_tarifes_data_facturacio”表格相关的方式将会有所帮助。 – wchiquito

+0

这里是图像:[table design](http://project2be.com/stack/tables1.png) – ganlub