Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 插入到表时,在连接的表中插入数据_Postgresql_Drupal_Netbeans_Triggers_Pgadmin - Fatal编程技术网

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列,类型混合
我正在使用的web应用程序需要此列和所有非空值(否则我会得到一个NullPointerException)才能工作,所以我要搜索的是(我想):

当用户在drupal中注册(插入他的电子邮件)时,它会自动创建两个完成的列,以使web在电子邮件存储在mysql中后立即自动工作。可能吗?解释得好吗

我的环境是:

  • 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中实现。。。我的意思是,这部分代码应该插入哪个文件?正如我上面所说的“在模块中”。如果你不