小编Mic*_*ael的帖子

如何返回在postgresql函数中删除的行数

这是我正在尝试做的一个非常简化的示例。考虑这张人表:

CREATE TABLE people (pid SERIAL PRIMARY KEY, firstname TEXT, isalive BOOLEAN);

INSERT INTO people (firstname, isalive) VALUES
    ('Sam', TRUE),
    ('Leslie', FALSE),
    ('Parker', FALSE);
Run Code Online (Sandbox Code Playgroud)

现在我想从表中删除死人。当我在 中执行此操作时psql,我看到一条消息,告诉我删除了多少行。

postgres=> DELETE FROM people WHERE isalive = FALSE;
DELETE 2
postgres=>
Run Code Online (Sandbox Code Playgroud)

但是,如果我将此 delete 语句放入函数并调用它,则不会看到相同的消息。

CREATE OR REPLACE FUNCTION deletedead() RETURNS void AS $$
  DELETE FROM people WHERE isalive = FALSE;
$$ LANGUAGE SQL;

SELECT deletedead();
Run Code Online (Sandbox Code Playgroud)

这会按预期删除行,但不会给出任何消息说明删除了多少行。我如何从这个函数中得到像“DELETE 2”这样的消息?

我尝试修改我的函数以返回删除的行数:

-- This doesn't work
CREATE OR REPLACE FUNCTION deletedead() RETURNS int AS $$ …
Run Code Online (Sandbox Code Playgroud)

postgresql

5
推荐指数
1
解决办法
4027
查看次数

如何通过YLabel字符串查找轴?

我正在创建一个包含多个子图并将其保存到文件的图形.像这样:

fig = figure;
ax1 = subplot(2, 1, 1);
ax2 = subplot(2, 1, 2);
ylabel(ax1, 'First');
ylabel(ax2, 'Second');
savefig('myfigure.fig')
Run Code Online (Sandbox Code Playgroud)

后来,我想将一个子图复制到一个新图,而不重新运行创建图的代码.我当前的方法是加载保存的图形,找到我想要通过其YLabel复制的轴,然后将其复制到新图形:

newfig = figure;
oldfig = openfig('myfigure.fig');
ylabel_obj = findobj(oldfig, 'String', 'First');  % This is not givng me what I expect
old_axes_obj = ylabel_obj.Parent;
new_axes_obj = copyobj(old_axes_obj, newfig);
Run Code Online (Sandbox Code Playgroud)

问题是findobj上面没有找到YLabel.它只返回一个0x0空的GraphicsPlaceholder数组.为什么findobj找不到我的YLabel?有没有更好的方法来找到我想要的轴?

matlab

4
推荐指数
1
解决办法
40
查看次数

标签 统计

matlab ×1

postgresql ×1