我使用此SQL代码来检测哪个表应该用于插入
CREATE OR REPLACE FUNCTION detect_table() RETURNS TRIGGER AS $$
BEGIN
IF ( NEW.ip = '192.168.1.1') THEN INSERT INTO child_table_one VALUES (NEW.*);
ELSIF ( NEW.ip = '192.168.1.100') THEN INSERT INTO child_table_two VALUES (NEW.*);
ELSE RAISE EXCEPTION 'IP not correct ';
END IF;
RETURN NULL;
END
$$ LANGUAGE 'plpgsql';
使用此触发器
CREATE TRIGGER insert_trigger
BEFORE INSERT ON parent_table
FOR EACH ROW
EXECUTE PROCEDURE detect_table();
但是此查询在父表和子表中插入。
INSERT INTO parent_table VALUES('192.168.1.1', 'other data')
如何只将记录插入儿童?
答案 0 :(得分:0)
最后我找到了答案。在这些查询中没有问题,问题出在我的SELECT上。我应该只从parent_table中选择。
SELECT * FROM ONLY parent_table
而不是
SELECT * FROM parent_table
在我的父表中没有显示任何内容。