Cassandra 文件

版本

您正在檢視預發行版本的說明文件。

建立單一值欄位 (靜態欄位)

靜態欄位值在分割區中的列之間共用。在使用 cassandra.apache.org//glossary.html#clustering-column[叢集欄位] 的表格中,非叢集欄位可以在表格定義中宣告為靜態。 cassandra.apache.org//glossary.html#static-column[靜態欄位] 僅在特定分割區中為靜態。

在下列範例中,flag 欄位為靜態

CREATE TABLE IF NOT EXISTS cycling.country_flag (
  country text,
  cyclist_name text,
  flag int STATIC,
  PRIMARY KEY (country, cyclist_name)
);
INSERT INTO cycling.country_flag (
  country, cyclist_name, flag
) VALUES (
  'Belgium', 'Jacques', 1
);

INSERT INTO cycling.country_flag (
  country, cyclist_name
) VALUES (
  'Belgium', 'Andre'
);

INSERT INTO cycling.country_flag (
  country, cyclist_name, flag
) VALUES (
  'France', 'Andre', 2
);

INSERT INTO cycling.country_flag (
  country, cyclist_name, flag
) VALUES (
  'France', 'George', 3
);
  • CQL

  • 結果

SELECT *
FROM cycling.country_flag;
 country | cyclist_name | flag
---------+--------------+------
 Belgium |        Andre |    1
 Belgium |      Jacques |    1
  France |        Andre |    3
  France |       George |    3

(4 rows)

套用下列限制

  • 未定義任何叢集欄位的表格無法有靜態欄位。沒有叢集欄位的表格在其中每個欄位本質上都是靜態的一列分割區。

  • 指定為分割區金鑰的欄位無法為靜態。

您可以對靜態欄位執行 批次條件更新

使用 DISTINCT 關鍵字選取靜態欄位。在這種情況下,資料庫僅擷取分割區的開頭 (靜態欄位)。