Postgresql 插入到表时,在连接的表中插入数据
我有两个表,共有一列名为Postgresql 插入到表时,在连接的表中插入数据,postgresql,drupal,netbeans,triggers,pgadmin,Postgresql,Drupal,Netbeans,Triggers,Pgadmin,我有两个表,共有一列名为id\u user。这两个表是在我的Drupal网页中创建的(我不知道,因为我没有创建Netbeans项目) 我在互联网上查看了一下,发现可能通过将REFERENCES 1sttable(id\u user)添加到第二个表中,它应该将1sttable的值(总是在新用户到达时创建)复制到id\u user的2ndtable的值(我不知道是在哪一点创建的)。对吗 如果不正确,我想知道pgAdmin中的一种方法,可以使我同步这些表,或者至少在同一时刻创建它们 我遇到的问题是,新
id\u user
。这两个表是在我的Drupal网页中创建的(我不知道,因为我没有创建Netbeans项目)
我在互联网上查看了一下,发现可能通过将REFERENCES 1sttable(id\u user)
添加到第二个表中,它应该将1sttable
的值(总是在新用户到达时创建)复制到id\u user
的2ndtable
的值(我不知道是在哪一点创建的)。对吗
如果不正确,我想知道pgAdmin中的一种方法,可以使我同步这些表,或者至少在同一时刻创建它们
我遇到的问题是,新用户一注册就自动在1sttable
上有一个新行,而要在2ndtable
上获得一个新行,需要某种“激活”,比如插入所有数据。我要寻找的是一种方法,即只要1sttable
中有新行,它也会自动在另一个表上创建新行。我不知道怎么说得更清楚(英语不是我的母语)
你给我的解决方案似乎很清楚这个问题,但问题更大一些:这两个表提供了不同类型的变量,应该是,一个在mySQL中,有用户数据(drupal默认为用户),然后我在postgresql中有2个,都有相同的主键(id_user):
- 第一个有118列,其中大多数是实整数李>
- 第二个有50列,类型混合
- windows server 2008企业版
- 玻璃鱼2.1
- netbeans 6.7.1
- drupal 6.17
- postgresql 8.4
- mysql 5.1.48
您阅读的引用是SQL命令的一部分,用于定义从第二个表到第一个表的引用。这对于解决您的问题不是绝对必要的,但它可以帮助保持数据库的一致性。如果您想了解有关此主题的更多信息,我建议您仔细阅读数据库结构和约束。您可能想了解如何使用添加额外代码以在用户注册时运行。一旦知道如何使用钩子,就可以编写代码(在模块中)在第二个表中插入相应的记录。这里使用的一个很好的候选钩子是或 您阅读的引用是SQL命令的一部分,用于定义从第二个表到第一个表的引用。这对于解决您的问题不是绝对必要的,但它可以帮助保持数据库的一致性。如果您想了解有关此主题的更多信息,我建议您仔细阅读数据库结构和约束。只是GUI。你的意思是,这个 A,就像您只有强制的一样,不能使用引用列中不存在的值。您可以使用更新级联上的
或删除级联上的来传播引用列中的更改,但不能像您描述的那样使用它创建新行。你拿错工具了
你所描述的可以用一个简单的方法实现。另一个更复杂的方法是一种新的方法。在这里扣动扳机
在PostgreSQL中,您需要一个,主要是使用的,以及一个表上使用它的
比如:
CREATE OR REPLACE FUNCTION trg_insert_row_in_tbl2()
RETURNS trigger AS
$func$
BEGIN
INSERT INTO tbl2 (my_id, col1)
VALUES (NEW.my_id, NEW.col1) -- more columns?
RETURN NEW; -- doesn't matter much for AFTER trigger
END
$func$ LANGUAGE plpgsql;
以及tbl1上插入后的触发器:
CREATE TRIGGER insaft
AFTER INSERT ON tbl1
FOR EACH ROW EXECUTE PROCEDURE trg_insert_row_in_tbl2();
只是GUI。你的意思是,这个
A,就像您只有强制的一样,不能使用引用列中不存在的值。您可以使用更新级联上的或删除级联上的来传播引用列中的更改,但不能像您描述的那样使用它创建新行。你拿错工具了
你所描述的可以用一个简单的方法实现。另一个更复杂的方法是一种新的方法。在这里扣动扳机
在PostgreSQL中,您需要一个,主要是使用的,以及一个表上使用它的
比如:
CREATE OR REPLACE FUNCTION trg_insert_row_in_tbl2()
RETURNS trigger AS
$func$
BEGIN
INSERT INTO tbl2 (my_id, col1)
VALUES (NEW.my_id, NEW.col1) -- more columns?
RETURN NEW; -- doesn't matter much for AFTER trigger
END
$func$ LANGUAGE plpgsql;
以及tbl1上插入后的触发器:
CREATE TRIGGER insaft
AFTER INSERT ON tbl1
FOR EACH ROW EXECUTE PROCEDURE trg_insert_row_in_tbl2();
您是否可以尝试描述问题的本质,而不用拖拽Drupal或Netbeans?因为这似乎既不是Drupal问题,也不是Netbeans问题,而是数据库结构或查询问题?我现在编辑,是否更清楚?我在网上找不到任何关于它的文件。我试图在下面的回答中给你一些提示,我希望这能为你提供足够的起点来解决问题或提出更具体的问题(我建议在另一个问题中)。你能尝试描述问题的本质,而不必拖入Drupal或Netbeans吗?因为这似乎既不是Drupal问题,也不是Netbeans问题,而是数据库结构或查询问题?我现在编辑,是否更清楚?我在网上找不到任何关于它的文件。我试图在下面的回答中给你一些提示,我希望这能给你提供足够的起点来解决问题或提出更具体的问题(我建议在另一个问题中)。嗨,这些天我一直在读这篇文章,但还没有弄清楚它应该如何在drupal中实现。。。我的意思是,这部分代码应该插入哪个文件?正如我上面所说的“在模块中”。如果你不