我在插入 tarifa_data
时遇到问题。该表与 translator_tarifes_data_facturacio
相关,并且与 tarifes_translator
相关。在 translator_tarifes_data_facturacio
表上,我想保存 id 关系 tarifa_data
和 tarifes_translator
。
这是设计表: table design http://project2be.com/stack/tables.png
在 tarifa_data
上,我创建了此触发器以将 id 插入到 translator_tarifes_data_facturacio
中。这是触发器:
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)
有什么想法吗?
编辑:这是整个表格:
最佳答案
插入表 translator_tarifes_data_facturacio
时,您需要 tarifa_data_id
和 tarifes_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 ;
关于mysql - 触发mysql相关表的插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20595663/