嘗試在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>
出現此錯誤是因為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如何實現自增列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!