簡體   English   中英

如何使用SQL檢索Teradata表中最后插入的行

[英]How to retrieve last inserted row in a teradata table using SQL

我有下面的多組Teradata表

CREATE MULTISET TABLE pp_scratch.HADOOP_FPTI_DASHBOARD ,NO FALLBACK ,
     NO BEFORE JOURNAL,
     NO AFTER JOURNAL,
     CHECKSUM = DEFAULT,
     DEFAULT MERGEBLOCKRATIO
     (
      job_status VARCHAR(32) CHARACTER SET LATIN NOT CASESPECIFIC NOT NULL,
      current_processing_hr VARCHAR(32) CHARACTER SET LATIN NOT CASESPECIFIC NOT NULL,
      no_of_files_moved VARCHAR(10) CHARACTER SET LATIN NOT CASESPECIFIC NOT NULL)
PRIMARY INDEX upi_HADOOP_FPTI_DASHBOARD ( current_processing_hr );

當我嘗試插入值時,它的插入順序不正確。 如果是按順序插入的,那么我將使用order by語句檢索值。 在這種情況下,如何檢索最后插入的值。

樣本數據

在此處輸入圖片說明

Teradata表是散列的/已散列的,除非current_processing_hr是唯一的,否則無法獲取最后一行

而且您的數據類型是錯誤的:

  • current_processing_hr更改為timestamp(2) default current_timestamp(2) ,如果您未在同一1/100秒內插入多行,則可以在最后一行使用它
  • no_of_files_moved更改為INT

您可以在此處添加一個序列(自動遞增數字整數)。 為此,您將不得不更改表並添加一個新列(數據類型integer)。 每插入一條記錄,此列將自動將其計數器加1。 現在,如果您按該新列進行排序,則將能夠獲取插入到表中的最后一行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM