問題
在執行資料插入時,postgresql 提示more than one owned sequence found錯誤,這個和之前文章中寫的序列編號錯亂不同,是由資料表的一個列生成了多個序列導致的,(常見于兩個資料庫的拷貝、同步等操作),
如果查看序列,會發現序列中有很多重復的專案,可以執行陳述句:
SELECT 'DROP SEQUENCE "'||c.relname||'";' FROM pg_class c WHERE c.relkind ='S'
ORDER BY c.relname
生成洗掉每一個序列的陳述句,接下來需要然后復制出來執行,記得選擇遇到錯誤繼續,這樣就可以洗掉所有多余的序列,然后按照我之前文章寫的批量更新序列就可以了,如果是強迫癥的話,可以使用:
UPDATE pg_class SET relname = substr(relname,0,char_length(relname)) WHERE relname like '%seq_'
將名字后面多余的 1、2 之類的數字去掉,
參考
- 解決postgresql序列重復的問題_more than one owned sequence found_witleo灬的博客-CSDN博客
- Value Generation | Npgsql Documentation
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/557082.html
標籤:其他
下一篇:返回列表