[英]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.