在 PostgreSQL 中建立表格時,您可能會在嘗試為主鍵列使用 AUTO_INCREMENT 選項時遇到錯誤。本文深入探討了這個問題,並提供了自動遞增表列的全面解決方案。
遇到的錯誤訊息表示與 AUTO_INCREMENT 關鍵字相關的語法錯誤。 PostgreSQL 不支援 AUTO_INCREMENT 關鍵字。相反,它採用不同的技術來自動產生主鍵值。
對於 PostgreSQL 10 及更高版本,自動遞增主鍵的首選方法是 IDENTITY 欄位。 IDENTITY 欄位是特殊類型的資料列,它會為每一行自動產生唯一值。
要建立具有 IDENTITY 欄位的資料表:
<code class="language-sql">CREATE TABLE staff ( staff_id int GENERATED ALWAYS AS IDENTITY PRIMARY KEY, staff text NOT NULL );</code>
GENERATED ALWAYS 子句確保即使在 INSERT 語句中明確提供值,列值也會自動產生。
對於 PostgreSQL 9.6 及更低版本,serial 偽資料類型可用於自動遞增主鍵。 serial 列在背景建立一個序列對象,並自動將列的預設值設定為序列中的下一個值。
要建立具有 serial 欄位的表:
<code class="language-sql">CREATE TABLE staff ( staff_id serial PRIMARY KEY, staff text NOT NULL );</code>
IDENTITY 和 serial 欄位都會自動產生值,但您可以在 INSERT 陳述式中使用 OVERRIDING SYSTEM|USER VALUE 語法覆寫這些值。
以上是如何在PostgreSQL中實現自動遞增列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!