lightdb -- merge into insert 相容 Oracle
最近,在支援業務從Oracle遷移到lightdb中發現merge into的不相容:業務中merge語法中有`insert(table.column)`用表字首
的SQL, 但在lightdb 的`merge`操作中卻不被支援。所以新版的lightdb支援了該功能。
Merge語句簡介
在開始介紹`insert(table.column)`在`merge`語句中的支援之前,讓我們先了解一下`merge`語句的基本概念。
`merge`語句是一種用於在目標表中執行插入、更新和刪除操作的強大語句。它的語法通常是這樣的:
MERGE INTO target_table USING source_table ON (condition) WHEN MATCHED THEN UPDATE SET column1 = value1, column2 = value2, ... WHEN NOT MATCHED THEN INSERT (column1, column2, ...) VALUES (value1, value2, ...);
在這個語句中,`target_table`是我們要操作的目標表,`source_table`則是我們的資料來源。
根據`ON`後的條件,`merge`語句會執行相應的更新或插入操作。
Insert語句的表字首問題
在資料庫操作中,我們常常需要指定表的字首,以區分不同的表。然而,我們發現`insert(table.column)`的語法
在`merge`語句中不被支援。 這是為什麼呢?
這個現象的原因在於,`merge`操作中,更新插入的物件都是目標表,而`insert`語句本身並不支援
`insert into table(table.column)`這樣的語法。 因此,在`merge` insert操作時,如果使用者寫了`insert(table.column)`這樣的語法,就需要在語法轉換中將其轉換
為`insert(column)`。
用法示例:
MERGE INTO target t USING source AS s ON t.tid = s.sid WHEN NOT MATCHED THEN INSERT (t.tid, t.balance) VALUES (0, 0) ;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69982913/viewspace-2989282/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- lightdb -- Oracle相容 -- rownumOracle
- LightDB/PostgreSQL 相容Oracle儲存過程SQLOracle儲存過程
- LightDB 23.1相容Oracle新特性支援Oracle
- LightDB 22.4 新特性之相容Oracle sqluldr2OracleSQL
- LightDB 22.4 新特性之相容Oracle樹形查詢Oracle
- lightdb新特性--相容oracle儲存過程的聯合陣列Oracle儲存過程陣列
- sql server merge 做insert和updateSQLServer
- LightDB 22.4 新特性之完全相容Oracle varchar2資料型別Oracle資料型別
- Sqlserver、oracle中Merge的使用方法,一個merge語句搞定多個Insert,Update,Delete操作SQLServerOracledelete
- 用merge 語句代替 insert 和deletedelete
- LightDB 22.4 新特性之相容Oracle線上轉換普通表為分割槽表Oracle
- MERGE新特性(UPDATE WHERE,DELETE WHERE,INSERT WHERE)delete
- Oracle中的insert/insert all/insert firstOracle
- LightDB/Postgres 使用ora2pg遷移Oracle到LightDB/PostgresOracle
- oracle merge into用法Oracle
- oracle_mergeOracle
- LightDB-Oracle和LightDB邏輯備份測試對比(十二)Oracle
- Merge into: Oracle中用一條SQL語句直接進行Insert/Update的操作(R1)OracleSQL
- Oracle 的 INSERT ALL和INSERT FIRSTOracle
- Oracle Insert BLOBOracle
- LightDB相容掃描 - 事前SQL相容遷移評估工具24.1支援MySQL --> TDSQL-PostgreSQL相容性掃描MySql
- SQL Server的Merge —— 一步實現 insert,update,deleteSQLServerdelete
- oracle hint no_mergeOracle
- Oracle Merge語法Oracle
- ORACLE insert命令解析Oracle
- Oracle/MySQL透過odbc訪問PostgreSQL for LightDBOracleMySql
- 使用GoldenGate 遷移Oracle到PostgreSQL/LightDBGoOracleSQL
- Oracle merge into delete語法Oracledelete
- oracle中merge into用法解析Oracle
- oracle merge into 用法詳解Oracle
- Oracle Performance Storyteller MERGEOracleORM
- ORACLE merge用法詳解Oracle
- Oracle EBS AD Merge PatchOracle
- oracle bulk Insert 比insert 快不是一點啊.Oracle
- Oracle-insert into加日期Oracle
- Oracle Direct-Path InsertOracle
- oracle merge into用法(R1)Oracle
- oracle中merge 語句使用Oracle