嘗試使用 AUTO_INCREMENT 自動為 PostgreSQL 中的主鍵編號時,可能會遇到錯誤。讓我們深入探討可能的原因及其解決方案:
在 PostgreSQL 10 及更高版本中,建議使用標準 SQL 的 IDENTITY 欄位來取代 AUTO_INCREMENT。
<code class="language-sql">CREATE TABLE staff ( staff_id int GENERATED ALWAYS AS IDENTITY PRIMARY KEY , staff text NOT NULL );</code>
<code class="language-sql">ALTER TABLE staff ADD COLUMN staff_id int GENERATED ALWAYS AS IDENTITY;</code>
將其也設為主鍵:
<code class="language-sql">ALTER TABLE staff ADD COLUMN staff_id int GENERATED ALWAYS AS IDENTITY PRIMARY KEY;</code>
對於 9.6 或更低版本,請使用 serial 偽資料類型:
<code class="language-sql">CREATE TABLE staff ( staff_id serial PRIMARY KEY , staff text NOT NULL );</code>
請確保使用有效的識別碼(小寫,不加引號),以防止潛在問題。
如果要將 serial 列替換為 IDENTITY 列,請參考此文件以取得指導。
可以使用 OVERRIDING {SYSTEM|USER} VALUE 來覆寫 INSERT 指令中的系統值或使用者輸入。
以上是PostgreSQL中如何正確實作自增主鍵?的詳細內容。更多資訊請關注PHP中文網其他相關文章!