postgresql - 在 INSERT 到表中 INSERT data in connected tables

标签 postgresql drupal netbeans triggers pgadmin

我有两个表,它们都有一个名为 id_user 的列。这两个表是在某个时候在我的 Drupal 网页中创建的(我不知道,因为我没有创建 Netbeans 项目)。

我在网上查了下,发现可能是把REFERENCES 1sttable (id_user)加到第二张表,应该复制1sttable的值(就是总是当新用户到达时创建)到 2ndtableid_user 值(我不知道是在哪个点创建的)。是否正确?

如果不正确,我想知道 pgAdmin 中的一种方法可以让我同步这些表,或者至少同时创建它们。

我遇到的问题是,新用户一注册就自动在 1sttable 上有一个新行,而要在 2ndtable 上获得一个新行,它需要一些有点像插入所有数据的“激活”。我正在寻找一种方法,只要 1sttable 中有新行,它就会自动在另一个表上创建新行。我不知道如何说得更清楚(英语不是我的母语)。

你给我的解决方案看起来问题很清楚,但问题有点大:两个表呈现不同种类的变量,应该是它们是,一个在mySQL中,带有用户数据(drupal default对于用户),然后我在 postgresql 中有 2 个,它们都具有相同的主键(id_user):

  • 第一个有118列,大部分是实整数;
  • 第二个有 50 列,混合类型。

我正在使用的 Web 应用程序需要此列的所有值都不是空的(否则我得到 NullPointerException)才能工作,所以我正在搜索的是(我认为):

当用户在 drupal 中注册 - 插入他的电子邮件 - 时,它会自动创建两个已完成的列,以便在电子邮件存储在 mysql 中后立即自动运行网络。是否可以?解释清楚了吗?

我的环境是:

  • windows server 2008 企业版
  • 玻璃鱼 2.1
  • netbeans 6.7.1
  • drupal 6.17
  • postgresql 8.4
  • mysql 5.1.48

最佳答案

pgAdmin只是图形用户界面。你是说 PostgreSQL , RDBMS .

A foreign key constraint ,就像您只强制不能使用任何值一样,引用的列中不存在该值。您可以使用 ON UPDATE CASCADEON DELETE CASCADE 从引用的列传播更改,但您不能像您描述的那样用它创建新行 .你用错了工具。

您所描述的可以通过 trigger 实现.另一种更复杂的方法是 RULE .在这里使用触发器。

在 PostgreSQL 中你需要一个 trigger function , 主要使用 plpgsql , 和一个 trigger在使用它的 table 上。

类似于:

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 上的触发器AFTER INSERT:

CREATE TRIGGER insaft
AFTER INSERT ON tbl1
FOR EACH ROW EXECUTE PROCEDURE trg_insert_row_in_tbl2();

关于postgresql - 在 INSERT 到表中 INSERT data in connected tables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10119005/

相关文章:

sql - 这个嵌套查询有什么问题吗?

Postgresql 8.3 不理解大于一天的负间隔

java - 从 .war 文件中取回我的 java 源代码?

Postgresql WalReceiver 进程等待连接主机,无论 "connect_timeout"

sql - ActionView::Template::Error (PG::UndefinedFunction: ERROR: operator does not exist: integer ~~ 未知

drupal - Drupal 中的 Liferay-Portlet

php - 如何让 PagerDefault 查询与 Drupal 7 一起正常工作?

css - Drupal 自定义菜单样式

maven - JSF 和 Richfaces/Primefaces - Maven - Netbeans 8.0.1 - Glassfish 4.1

java - 来自 db 乐观字段的 Netbeans 实体类