sql查詢更新update select
針對一個上線的專案進行資料庫最佳化,以便後期統計,遇到一個資料填充的問題,在此記錄一下,各位如果也有這種問題,歡迎一起交流。 |
表結構:
當我從其它資料來源使用sql來填充這個表資料時,from_id都是null,因此要使用update來對from_id進行補充。
update t_ch_test t set t.from_id = (select max(a.id) from t_ch_test a where a.node_id = t.node_id and a.id < t.id)
使用update select來自連線進行更新操作。這個sql在oracle中執行是沒有任何問題的,然後,坑爹的是,這個sql在postgresql中編譯都報錯。而我們專案組用的最多的就是postgresql,因此無語了。
後來百度一下,發現postgresql在update時不支援表別名alis,所以最開始想的是把別名去掉,如下:
update t_ch_test set from_id = (select max(a.id) from t_ch_test a where a.node_id = node_id and a.id < id)
sql執行是沒有問題了,但一查結果,發現from_id全部為null,怎麼回事兒呢。
後來在同事的指導下,a.id < id換成了a.id < 100,執行成功,from_id也有值了,但這個100不能是一個固定值呀。後來自己各種試,終於試出來了,不用表別名,直接用表名代替,如下:
update t_ch_test set from_id = (select max(a.id) from t_ch_test a where a.node_id = t_ch_test.node_id and a.id < t_ch_test.id)
終於成功了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2745753/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql 各種級聯查詢後更新(update select).MySql
- SQL update select語句SQL
- 檢視慢查詢中,表被update 或 select 次數
- LINQ系列:LINQ to SQL Select查詢SQL
- SQL 查詢並不是從 SELECT 開始的SQL
- select查詢之三:子查詢
- select查詢之一:普通查詢
- select子查詢
- mysql update join優化update in查詢效率MySql優化
- select查詢之四:連線查詢
- oracle update left join查詢Oracle
- MySQL中SELECT+UPDATE併發更新問題MySql
- select for update nowait 與 select for update 區別AI
- oracle select for updateOracle
- oracle dbms_sql執行查詢select_dml_ddl(一)OracleSQL
- Select from subquery 子查詢
- 簡單查詢、插入、更新、刪除SQL語句SQL
- Oracle\MS SQL Server Update多表關聯更新OracleSQLServer
- SELECT ... FOR UPDATE SKIP LOCKED;
- SQL查詢的:子查詢和多表查詢SQL
- SQL的資料庫操作:新增、更新、刪除、查詢SQL資料庫
- mysql sql_safe_updates 不支援子查詢的更新。MySql
- SQLServer DML操作阻塞SELECT查詢SQLServer
- 【SQL查詢】集合查詢之INTERSECTSQL
- 關於 select ... for update 和 for update nowaitAI
- select查詢之五:分析函式在查詢的運用函式
- 【閃回特性之閃回查詢】使用閃回查詢(select as of)
- 原生SQL查詢SQL
- SQL 聚合查詢SQL
- sql 查詢效率SQL
- sql子查詢SQL
- select for update nowaitAI
- mysql 高併發 select update 併發更新問題解決方案MySql
- MongoDB入門系列(三):查詢(SELECT)MongoDB
- select查詢中union連線符
- MySQL講義第 47 講——select 查詢之查詢練習(五)MySql
- MySQL講義第27講——select 查詢之自連線查詢MySql
- iOS FMDB 查詢 批量更新iOS