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