日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

文檔

使用COPY ON CONFLICT覆蓋導(dǎo)入數(shù)據(jù)

AnalyticDB PostgreSQL版支持COPY ON CONFLICT覆蓋導(dǎo)入數(shù)據(jù)。目前COPY ON CONFLICT僅支持全表約束檢查及全列覆蓋寫(xiě)入。

在AnalyticDB PostgreSQL版中,您可以通過(guò)COPY快速導(dǎo)入數(shù)據(jù),但是在COPY導(dǎo)入數(shù)據(jù)的過(guò)程中,如果數(shù)據(jù)與表的約束沖突,COPY任務(wù)會(huì)報(bào)錯(cuò)并終止。AnalyticDB PostgreSQL提供了COPY ON CONFLICT功能,支持在約束沖突時(shí)進(jìn)行覆蓋寫(xiě)入或忽略寫(xiě)入,避免COPY任務(wù)因?yàn)榧s束沖突而失敗。

說(shuō)明

僅內(nèi)核編譯日期為20210528及以后的AnalyticDB PostgreSQL 6.0版實(shí)例支持COPY ON CONFLICT功能。為了更好地使用該功能,建議您升級(jí)至最新的內(nèi)核版本,升級(jí)內(nèi)核小版本,請(qǐng)參見(jiàn)版本升級(jí)

使用約束

  • 目標(biāo)表需為堆表,不支持AO表(AO表不支持唯一索引,所以不支持AO表)。

  • 僅V6.3.6.1及以上內(nèi)核版本支持目標(biāo)表為分區(qū)表。如何升級(jí)內(nèi)核版本,請(qǐng)參見(jiàn)版本升級(jí)

  • 目標(biāo)表不支持Updatable View(可更新視圖)。

  • COPY ON CONFLICT僅支持COPY FROM,不支持COPY TO。

  • 不支持指定約束索引列,COPY ON CONFLICT默認(rèn)判斷所有約束列。若指定約束索引列,則COPY執(zhí)行失敗,報(bào)錯(cuò)信息如下:

    COPY NATION FROM stdin DO ON CONFLICT(n_nationkey) DO UPDATE;
    ERROR:  COPY ON CONFLICT does NOT support CONFLICT index params
  • 不支持指定更新列,COPY ON CONFLICT默認(rèn)更新所有列。若指定更新列,則COPY執(zhí)行失敗,報(bào)錯(cuò)信息如下:

    COPY NATION FROM stdin DO ON CONFLICT DO UPDATE SET n_nationkey = excluded.n_nationkey;
    ERROR:  COPY ON CONFLICT does NOT support UPDATE SET targets

語(yǔ)法

COPY table [(column [, ...])] FROM {'file' | STDIN}
     [ [WITH] 
       [BINARY]
       [OIDS]
       [HEADER]
       [DELIMITER [ AS ] 'delimiter']
       [NULL [ AS ] 'null string']
       [ESCAPE [ AS ] 'escape' | 'OFF']
       [NEWLINE [ AS ] 'LF' | 'CR' | 'CRLF']
       [CSV [QUOTE [ AS ] 'quote'] 
            [FORCE NOT NULL column [, ...]]
       [FILL MISSING FIELDS]
       [[LOG ERRORS]  
       SEGMENT REJECT LIMIT count [ROWS | PERCENT] ]
    [DO ON CONFLICT DO UPDATE | NOTHING]

COPY ON CONFLICT提供了DO ON CONFLICT DO UPDATE和DO ON CONFLICT DO NOTHING兩個(gè)子句:

  • DO ON CONFLICT DO UPDATE表示表約束沖突時(shí)全列更新。

  • DO ON CONFLICT DO NOTHING表示表約束沖突時(shí)忽略輸入內(nèi)容。

示例

  1. 創(chuàng)建一個(gè)表NATION,表中包含4列,其中N_NATIONKEY為主鍵列,具有主鍵約束,建表語(yǔ)句如下:

    CREATE TABLE NATION (
        N_NATIONKEY  INTEGER,
        N_NAME       CHAR(25),
        N_REGIONKEY  INTEGER,
        N_COMMENT    VARCHAR(152),
        PRIMARY KEY (N_NATIONKEY)
    );

  2. 通過(guò)COPY導(dǎo)入部分?jǐn)?shù)據(jù),COPY語(yǔ)句如下:

    COPY NATION FROM stdin;

    出現(xiàn)>>標(biāo)志后逐條輸入如下內(nèi)容:

    0 'ALGERIA' 0 'haggle. carefully final deposits detect slyly agai'
    1 'ARGENTINA' 1 'al foxes promise slyly according to the regular accounts. bold requests alon'
    2 'BRAZIL' 1 'y alongside of the pending deposits. carefully special packages are about the ironic forges. slyly speci'
    3 'CANADA' 1 'eas hang ironic, silent packages. slyly regular packages are furiously over the tithes. fluffily bold'
    \.
    說(shuō)明

    復(fù)制以上數(shù)據(jù)時(shí),請(qǐng)將兩列值之間的空格替換為Tab。

  3. 查詢NATION表,查看已經(jīng)導(dǎo)入的數(shù)據(jù),查詢語(yǔ)句如下:

    SELECT * from NATION;

    返回信息如下:

     n_nationkey |          n_name           | n_regionkey |                                                 n_comment                                                
      
    -------------+---------------------------+-------------+------------------------------------------------------------------------------------------------------------
               2 | 'BRAZIL'                  |           1 | 'y alongside of the pending deposits. carefully special packages are about the ironic forges. slyly speci'
               3 | 'CANADA'                  |           1 | 'eas hang ironic, silent packages. slyly regular packages are furiously over the tithes. fluffily bold'
               0 | 'ALGERIA'                 |           0 | ' haggle. carefully final deposits detect slyly agai'
               1 | 'ARGENTINA'               |           1 | 'al foxes promise slyly according to the regular accounts. bold requests alon'
    (4 rows)
  4. 使用COPY語(yǔ)句導(dǎo)入一行主鍵沖突的數(shù)據(jù),COPY語(yǔ)句如下:

    COPY NATION FROM stdin;

    出現(xiàn)>>標(biāo)志后逐條輸入如下內(nèi)容:

    0 'GERMANY' 3 'l platelets. regular accounts x-ray: unusual, regular acco'
    \.
    說(shuō)明

    復(fù)制以上數(shù)據(jù)時(shí),請(qǐng)將兩列值之間的空格替換為Tab。

    此時(shí)執(zhí)行會(huì)產(chǎn)生報(bào)錯(cuò),報(bào)錯(cuò)內(nèi)容如下:

    ERROR:  duplicate key value violates unique constraint "nation_pkey"
    DETAIL:  Key (n_nationkey)=(0) already exists.
    CONTEXT:  COPY nation, line 1
  5. 使用COPY ON CONFLICT語(yǔ)句,在主鍵沖突的情況下更新數(shù)據(jù),COPY ON CONFLICT語(yǔ)句如下:

    COPY NATION FROM stdin DO  ON CONFLICT DO UPDATE;

    出現(xiàn)>>標(biāo)志后逐條輸入如下內(nèi)容:

    0 'GERMANY' 3 'l platelets. regular accounts x-ray: unusual, regular acco'
    \.
    說(shuō)明

    復(fù)制以上數(shù)據(jù)時(shí),請(qǐng)將兩列值之間的空格替換為Tab。

    此時(shí)COPY語(yǔ)句不會(huì)產(chǎn)生報(bào)錯(cuò)信息,查詢NATION表可以看到主鍵為0的行數(shù)據(jù)已更新,查詢語(yǔ)句如下:

    SELECT * FROM NATION;

    返回信息如下:

     n_nationkey |          n_name           | n_regionkey |                                                 n_comment                                                
      
    -------------+---------------------------+-------------+------------------------------------------------------------------------------------------------------------
               2 | 'BRAZIL'                  |           1 | 'y alongside of the pending deposits. carefully special packages are about the ironic forges. slyly speci'
               3 | 'CANADA'                  |           1 | 'eas hang ironic, silent packages. slyly regular packages are furiously over the tithes. fluffily bold'
               1 | 'ARGENTINA'               |           1 | 'al foxes promise slyly according to the regular accounts. bold requests alon'
               0 | 'GERMANY'                 |           3 | 'l platelets. regular accounts x-ray: unusual, regular acco'
    (4 rows)
  6. 使用COPY ON CONFLICT功能,在主鍵沖突的情況下,忽略輸入:

    COPY NATION FROM stdin DO ON CONFLICT DO NOTHING;

    出現(xiàn)>>標(biāo)志后逐條輸入如下內(nèi)容:

    1 'GERMANY' 3 'l platelets. regular accounts x-ray: unusual, regular acco'
    \.
    說(shuō)明

    復(fù)制以上數(shù)據(jù)時(shí),請(qǐng)將兩列值之間的空格替換為Tab。

    此時(shí)COPY語(yǔ)句不會(huì)產(chǎn)生報(bào)錯(cuò)信息,查詢NATION表可以看到主鍵為1的行數(shù)據(jù)沒(méi)有更新,查詢語(yǔ)句如下:

    SELECT * FROM NATION;

    返回信息如下:

     n_nationkey |          n_name           | n_regionkey |                                                 n_comment                                                
      
    -------------+---------------------------+-------------+------------------------------------------------------------------------------------------------------------
               2 | 'BRAZIL'                  |           1 | 'y alongside of the pending deposits. carefully special packages are about the ironic forges. slyly speci'
               3 | 'CANADA'                  |           1 | 'eas hang ironic, silent packages. slyly regular packages are furiously over the tithes. fluffily bold'
               1 | 'ARGENTINA'               |           1 | 'al foxes promise slyly according to the regular accounts. bold requests alon'
               0 | 'GERMANY'                 |           3 | 'l platelets. regular accounts x-ray: unusual, regular acco'
    (4 rows)