我有一個表稱爲SEQ_TABLE其中有兩列,SEQ_NAME和ID插入表通過獲取序列nextval將在PostgreSQL的
SEQ_NAME | ID
----------------------
SEQ_TABLE_10 | 1
SEQ_TABLE_20 | 5
其中ID爲TABLE_10的COLUMN_1的Max和TABLE_20
現在,我必須通過獲得下一個值從SEQ_TABLE插入到TABLE_10中的新記錄。
我已經寫了PostgreSQL的查詢,如下所示:
INSERT INTO TABLE_10 (COLUMN_1, COLUMN_2, COLUMN_3) VALUES ((SELECT nextval(SEQ_TABLE)), 'Bangalore' ,NULL);
當我執行上面的查詢,這是給下面的錯誤: **********錯誤******* ***
ERROR: column "SEQ_TABLE_10" does not exist
SQL state: 42703
Character: 99
但是,下面的查詢在正常工作的MySQL數據庫:
INSERT INTO TABLE_TABLE(COLUMN_1, COLUMN_2, COLUMN_3) VALUES ((SELECT nextval('TABLE_172_SEQ','true')), 'Bangalore' ,NULL);
什麼是Exact Postgres查詢來實現它PostgreSQL DB?
MySQL不支持序列不像Postgres。所以這意味着您在MySQL中使用的nextval函數可能不是MySQL的內置函數。你能否檢查一下你的MySQL數據庫中是否有用戶定義的名爲nextval的函數?如果你得到這個函數,你可能只是將函數複製到Postgres數據庫並使用它,或者更好地去創建序列,如@apm – Manish
@Manish:MySQL它的工作正常所提到的那樣..問題在於Postgres – Satish
You可能誤解了我的評論。我的意思是MySQL沒有序列,因此沒有機會使用nextval功能。但是你有一個在MySQL中使用的nextval函數調用。我懷疑你在MySQL中使用的nextval可能是用戶定義的函數。你能否檢查一下你的MySQL數據庫中是否有用戶定義的函數名爲「nextVal」? – Manish