亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將主鍵從整數轉換為串行?

如何將主鍵從整數轉換為串行?

qq_遁去的一_1 2019-11-21 09:32:13
在Postgres 9.3表中,我有一個integer主鍵,具有自動遞增的順序,但是我已經達到的最大值integer。怎么把它轉換integer成serial?我試過了:ALTER TABLE my_table ALTER COLUMN id SET DATA TYPE bigint;但是對于數據類型serial而不是則無效bigint。好像我無法轉換為serial?
查看完整描述

1 回答

?
小怪獸愛吃肉

TA貢獻1852條經驗 獲得超1個贊

serial是偽數據類型,而不是實際數據類型。它的integer下面是一些自動執行的其他DDL命令:


創建一個序列(默認情況下具有匹配名稱)。

設置列NOT NULL和默認值以從該序列中繪制。

使列“擁有”序列。

細節:


安全,干凈地重命名使用Postgres中的串行主鍵列的表?

A bigserial相同,圍繞一bigint列構建。您想要bigint,但您已經實現了。要將現有的serial列轉換為bigserial(或smallserial),您要做的就是ALTER列的數據類型。序列通常基于bigint,因此相同的序列可用于任何integer類型。


要將a更改bigint為bigserial或將integera 更改為serial,您只需手動完成其余工作即可:


為字段創建PostgreSQL序列(不是記錄的ID)

實際的數據類型仍然是integer/ bigint。如果滿足a的所有條件,則諸如pgAdmin之類的某些客戶端將serial在反向工程CREATE TABLE腳本中顯示數據類型serial。


查看完整回答
反對 回復 2019-11-21
  • 1 回答
  • 0 關注
  • 424 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號