如何在表上創建序列以使其從0 - >最大值變爲? 我使用下面的SQL代碼試過,但它不會將任何值到表中,我使用:在現有表上創建序列
CREATE SEQUENCE rid_seq;
ALTER TABLE test ADD COLUMN rid INTEGER;
ALTER TABLE test ALTER COLUMN rid SET DEFAULT nextval('rid_seq');
我想在插入序列表是從另一個查詢的輸出。我無法弄清楚在初始查詢期間添加序列還是在查詢執行後將序列添加到表格是否更有意義。
感謝您的摘錄。當我嘗試運行它時遇到了語法錯誤:'at或near @'。我不熟悉Postgreqsl中的變量定義,所以我不確定是否有什麼明顯的東西需要改變。 – djq 2012-02-26 22:48:47
(1)這看起來像SQL Server或可能MySQL語法,它不會在PostgreSQL中工作。 (2)一旦新行被添加,這會造成一些麻煩,因爲您沒有使用序列中的值,即使您已經使用了序列中的下一個值, rid'。 – 2012-02-26 23:00:47
良好的捕獲,[太短](http://stackoverflow.com/users/479863/mu-is-too-short),關於不使用序列值。是的,我非常擅長編寫MS SQL Server代碼(我將以這種方式處理這些代碼),並且對PostgreSQL根本不熟悉。我試圖提出的一點是定義一個約束和應用它的區別,upvoted的答案解釋得比我好。 – 2012-02-27 14:52:18