定義資料表限制 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

定義資料表限制

唯一性、主索引鍵和外部索引鍵限制僅供參考,Amazon Redshift 不會在您填入資料表時強制執行它們。例如,如果您將資料插入具有相依性的資料表中,即使插入違反限制也可以成功執行。儘管如此,主索引鍵和外部索引鍵仍會做為規劃提示,而且如果您的 ETL 程序或應用程式中的某些其他程序強制其完整性,則應該宣告它們。

例如,查詢規劃工具會在特定統計計算中使用主索引鍵和外部索引鍵。這樣做是為了推斷影響子查詢裝飾關係技術的唯一性和參考關係。透過這樣做,它可以排序大量聯結並刪除多餘的聯結。

規劃器會運用這些索引鍵關係,但其假設 Amazon Redshift 資料表中的所有索引鍵與載入時一樣有效。如果您的應用程式允許無效的外部索引鍵或主索引鍵,則有些查詢可能傳回不正確的結果。例如,如果主索引鍵不是唯一的,則 SELECT DISTINCT 查詢可能傳回重複的資料列。如果您懷疑其有效性的話,請勿對您的資料表定義索引鍵限制。但是,當您知道主索引鍵和外部索引鍵有效時,您應該一律宣告它們和限制唯一性。

Amazon Redshift 的確會強制執行 NOT NULL 欄限制條件。

如需資料表限制條件的詳細資訊,請參閱CREATE TABLE。如需如何捨棄具有相依性之資料表的資訊,請參閱 DROP TABLE