所以我工作的代碼有由PHP(注:這是從PostgreSQL的日誌文件,採取因此它不包含任何PHP的東西):執行該語句有人可以幫助我理解並將此MySql語句轉換爲Postgresql?
CREATE temporary table IF NOT EXIST temp tablename(id int primary key,
shared int default 0) replace select 1, userid as id
from tablefoo where sharedid = 1337
我不太明白這裏究竟發生了什麼,我知道臨時表是什麼,我可以非常準確地猜測IF NOT EXIST做了什麼,但替換在這裏做什麼?我知道,取而代之的是像插入,但它代替的東西爲好,但在這種情況下,什麼也沒有規定它與替換,所以它只是沒有取代的東西,爲什麼選擇1,我知道,非常簡單,只是告訴你,如果你的表有行或其他東西,但是在這裏使用它的意義何在?
經過一番研究,我發現IF NOT EXIST和replace在PostgreSQL中不存在。大多數在線資源提示使用SQL函數來替換它們。
我應該使用SQL函數來模擬IF NOT EXIST嗎?如果是這樣,我會寫什麼(對不起,我對SQL很陌生)還是應該使用PHP函數。 取代什麼?
很抱歉的麻煩,感謝您的時間,哦,如果你們是不是很忙或什麼的,你也可以告訴我如何模擬「忽略」,我目前的解決方案包括任意刪除。
請注意,使用CTE刪除或更新僅適用於即將推出的9.1版本(「可寫入CTE」) –