当前位置: 网站首页>小程序开发>小程序制作

大竹百姓网推广/如何办理/收费标准/价格多少钱/排名代运营/代理商联系方式-大竹百姓网开户费用/招聘/找工作/二手车/租车/房产/电话

发表日期: 2022-11-28 16:58:29 浏览次数:50

大竹百姓网推广/如何办理/收费标准/价格多少钱/排名代运营/代理商联系方式-大竹百姓网开户费用/招聘/找工作/二手车/租车/房产/电话

网站建设.png


值得讨论的是比特币。中本聪对比特币的设计初衷是成为点对点的加密电子现金,他强调比特币的货币属性。然而其固定上限的机制设计以及巨大的价格波动让比特币无法承担区块链世界“美元”的角色,如下图所示,他已经从最初功能性、货币性代币,向上移动,成为权益性代币。万分之一的比特币钱包地址持有40%已经挖出的比特币,可见大量比特币掌握在少数人手中,其囤积的目的并不是为了买牛肉面,而是为了预期的价格暴涨,其权益属性被刻意不成比例的放大, 几乎完全掩盖了货币属性。




这里有一个用 C 编写的触发器函数的非常简单的例子(用过程语言编写的触发器的例子可以在过程语言的文档中找到)。

如果该命令试图向列x中插入一个空值,函数trigf报告表ttest中的行数并且跳过实际的操作(这样该触发器会作为一个非空约束但不会中止事务)。

首先,表定义:

CREATE TABLE ttest (
    x integer
);


这是该触发器函数的源代码:

#include "postgres.h"
#include "fmgr.h"
#include "executor/spi.h"       /* this is what you need to work with SPI */
#include "commands/trigger.h"   /* ... triggers ... */
#include "utils/rel.h"          /* ... and relations */

PG_MODULE_MAGIC;

PG_FUNCTION_INFO_V1(trigf);

Datum
trigf(PG_FUNCTION_ARGS)
{
    TriggerData *trigdata = (TriggerData *) fcinfo->context;
    TupleDesc   tupdesc;
    HeapTuple   rettuple;
    char       *when;
    bool        checknull = false;
    bool        isnull;
    int         ret, i;

    /* make sure it's called as a trigger at all */
    if (!CALLED_AS_TRIGGER(fcinfo))
        elog(ERROR, "trigf: not called by trigger manager");

    /* tuple to return to executor */
    if (TRIGGER_FIRED_BY_UPDATE(trigdata->tg_event))
        rettuple = trigdata->tg_newtuple;
    else
        rettuple = trigdata->tg_trigtuple;

    /* check for null values */
    if (!TRIGGER_FIRED_BY_DELETE(trigdata->tg_event)
        && TRIGGER_FIRED_BEFORE(trigdata->tg_event))
        checknull = true;

    if (TRIGGER_FIRED_BEFORE(trigdata->tg_event))
        when = "before";
    else
        when = "after ";

    tupdesc = trigdata->tg_relation->rd_att;

    /* connect to SPI manager */
    if ((ret = SPI_connect()) < 0)
        elog(ERROR, "trigf (fired %s): SPI_connect returned %d", when, ret);

    /* get number of rows in table */
    ret = SPI_exec("SELECT count(*) FROM ttest", 0);

    if (ret < 0)
        elog(ERROR, "trigf (fired %s): SPI_exec returned %d", when, ret);

    /* count(*) returns int8, so be careful to convert */
    i = DatumGetInt64(SPI_getbinval(SPI_tuptable->vals[0],
                                    SPI_tuptable->tupdesc,
                                    1,
                                    &isnull));

    elog (INFO, "trigf (fired %s): there are %d rows in ttest", when, i);

    SPI_finish();

    if (checknull)
    {
        SPI_getbinval(rettuple, tupdesc, 1, &isnull);
        if (isnull)
            rettuple = NULL;
    }

    return PointerGetDatum(rettuple);
}








大竹百姓网推广/如何办理/收费标准/价格多少钱/排名代运营/代理商联系方式-大竹百姓网开户费用/招聘/找工作/二手车/租车/房产/电话


400-111-6878
服务热线
顶部

备案号: 苏ICP备11067224号

CopyRight © 2011 书生商友信息科技 All Right Reserved

24小时服务热线:400-111-6878   E-MAIL:1120768800@qq.com   QQ:1120768800

  网址: https://www.768800.com  网站建设上往建站

关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|

企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|

400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 昌平殡葬| 朝阳殡葬|

预约专家

欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系

  

服务热线:400-111-6878