首頁 > 資料庫 > mysql教程 > PostgreSQL如何實現自增列?

PostgreSQL如何實現自增列?

Mary-Kate Olsen
發布: 2025-01-22 11:32:09
原創
464 人瀏覽過

How Do I Implement Auto-Incrementing Columns in PostgreSQL?

在PostgreSQL中實作自動遞增列

嘗試在PostgreSQL中使用AUTO_INCREMENT自動編號主鍵時,可能會發生錯誤。以下SQL示範了嘗試使用AUTO_INCREMENT建立表格的範例:

<code class="language-sql">CREATE TABLE Staff   (
  ID        INTEGER NOT NULL AUTO_INCREMENT,
  Name      VARCHAR(40) NOT NULL,
  PRIMARY KEY (ID)
);</code>
登入後複製

但是,會回傳錯誤:

<code>ERROR: ERROR: syntax error at or near "AUTO_INCREMENT"
SQL state: 42601
Character: 63</code>
登入後複製

PostgreSQL版本與自動遞增

出現此錯誤是因為AUTO_INCREMENT不是PostgreSQL中自動遞增的有效語法。相反,根據PostgreSQL版本使用不同的機制:

PostgreSQL 10或更高版本

對於PostgreSQL 10或更高版本,使用IDENTITY欄位類型。文法如下:

<code class="language-sql">CREATE TABLE staff (
  staff_id int GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
  staff    text NOT NULL
);</code>
登入後複製

PostgreSQL 9.6或更低版本

對於PostgreSQL 9.6或更低版本,使用serial資料型別:

<code class="language-sql">CREATE TABLE staff (
  staff_id serial PRIMARY KEY,
  staff    text NOT NULL
);</code>
登入後複製

serial偽資料類型會自動建立一個序列對象,並將DEFAULT設定為序列的下一個值。

其他注意事項

  • 使用合法的、小寫的、未加引號的標識符,以便在PostgreSQL中更容易使用。
  • 依需求使用OVERRIDING {SYSTEM|USER} VALUE覆寫INSERT指令中的系統值或使用者輸入。

以上是PostgreSQL如何實現自增列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板