我对 Postgres 非常陌生,现在我的任务是创建一个在插入后触发的触发器。基本上,我会让脚本执行插入操作,触发触发器,该触发器会根据 Insert 语句中的参数从另一个表中抓取一个字段,然后使用另一个表中的值更新新插入的记录。
INSERT INTO "TableA" VALUES ('ABC-101', 'John Doe', '')
PersonID | Name | Address
------------------------------
ABC-101 John Doe
Run Code Online (Sandbox Code Playgroud)
CREATE OR REPLACE FUNCTION fn_getaddress()
RETURNS trigger AS
$BODY$
DECLARE
PersonID TEXT;
BEGIN
PersonID := TG_ARGV[0];
UPDATE "TableA"
SET "Address" = (SELECT "Address"
FROM "TableB"
WHERE "PersonID" = PersonID);
RETURN null;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
Run Code Online (Sandbox Code Playgroud)
这是我的触发器:
CREATE TRIGGER tr_getaddress
AFTER INSERT
ON TableA
FOR EACH ROW
EXECUTE PROCEDURE fn_getaddress(personid); …Run Code Online (Sandbox Code Playgroud) 我只是想问一下解决二维数组(2列)的最佳方法,它可以存储:CandidateName和它们各自的VoteCount.
我想要做的是接受来自用户的输入说:投票约翰福音10章,其中约翰是候选人的名字,10是他想要给他的投票.所以我需要将{John,10}存储到我的数组中.然而,在此之后我的程序将再次询问用户投票,所以如果我进入VOTE Doe 15,则条目{Doe,15}将被添加到阵列中.如果用户输入VOTE John 2,则需要更新我的数组,因此新值将为{John,12}.
目前我使用两个arraylists:CandidateName和VoteCount,我只依靠他们的索引进行配对.但是,这不是真的可靠,所以我试图找到另一种方法来解决这个问题.但是,我并不是多维数组的忠实粉丝.
有人可以指出我如何实现这一目标的好方法?
我目前正在使用aspx网站,其中我正在使用ASPxGridView控件.我可以按照我希望它出现的方式在GridView上显示数据.但是,当我单击"编辑"按钮(由控件本身在命令列下提供)时,会出现问题.单击所述按钮后,GridView会将该行更改为可编辑的行.但是,我无法更改文本框中的值.请注意,我已经在GridView的智能标记和xml源本身上将ReadOnly属性设置为false.
我试图创建一个测试标志,其中只要ReadOnly属性设置为true,文本框的背景颜色就会变为蓝色.运行程序后,无论ReadOnly设置为true还是false,文本框都将显示为蓝色.
是否有任何其他属性可以帮助我使这些文本框可编辑?非常感谢!
干杯!
我在SQL Server 2008 R2的数据库中有一个非常简单的查询:
UPDATE Table1
SET Field1 = 'This value'
WHERE ID = '12345'
Run Code Online (Sandbox Code Playgroud)
我试图执行此查询,但从未获得成功的结果。首先,它执行了很长时间。有一次我执行此查询,然后在吃午饭的时候留在那里。当我2小时后回来时,仍然没有完成。
我需要以编程方式执行此查询。我在那里执行它具有所有必要的条件,但是现在唯一的问题是它给了我一个“超时”错误消息。我尝试增加CommandTimeOut,但这样做只会使程序保留更长时间。(由于在SQL Server中执行查询确实需要很长时间,因此请早些时候查看我的情况)
有人可以为我指出一个好的解决方案来避免此问题吗?是的,我正在访问的表有很多记录,如数千条。以前从来都不是问题,但现在是。:(
提前致谢 :)
c# ×2
arrays ×1
asp.net ×1
aspxgridview ×1
function ×1
plpgsql ×1
postgresql ×1
timeout ×1
triggers ×1