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的merge into使用介紹
- LightDB 22.4 新特性之相容Oracle樹形查詢Oracle
- 1089 Insert or Merge (25分)
- Sqlserver、oracle中Merge的使用方法,一個merge語句搞定多個Insert,Update,Delete操作SQLServerOracledelete
- lightdb新特性--相容oracle儲存過程的聯合陣列Oracle儲存過程陣列
- Oracle中的insert/insert all/insert firstOracle
- LightDB 22.4 新特性之完全相容Oracle varchar2資料型別Oracle資料型別
- LightDB 22.4 新特性之相容Oracle線上轉換普通表為分割槽表Oracle
- LightDB/Postgres 使用ora2pg遷移Oracle到LightDB/PostgresOracle
- Oracle-insert into加日期Oracle
- LightDB-Oracle和LightDB邏輯備份測試對比(十二)Oracle
- SQL Server的Merge —— 一步實現 insert,update,deleteSQLServerdelete
- 使用GoldenGate 遷移Oracle到PostgreSQL/LightDBGoOracleSQL
- Oracle/MySQL透過odbc訪問PostgreSQL for LightDBOracleMySql
- Oracle merge 與 PG新特性 UPSERTOracle
- LightDB23.1新特性支援Oracle hint增強DB2Oracle
- Oracle批量插入資料insert all into用法Oracle
- LightDB相容掃描 - 事前SQL相容遷移評估工具24.1支援MySQL --> TDSQL-PostgreSQL相容性掃描MySql
- Oracle批次生成Merge指令碼程式Oracle指令碼
- LightDB/postgresql內建特性之訪問oracle之oracle_fdw介紹SQLOracle
- EDBPPAS(Oracle相容版)Oracle與PostgreSQL相容模式的引數配置切換OracleSQL模式
- oracle-資料庫- insert 插入語句Oracle資料庫
- Oracle中 Update和insert結合語法Oracle
- Oracle insert大量資料經驗之談Oracle
- Oracle實驗8--Merge與歸檔Oracle
- EDB PPAS(Oracle 相容版) Oracle與PostgreSQL 相容模式的引數配置切換OracleSQL模式
- LightDB 22.4 新特性之支援Oracle cardinality和ordered_predicates hintOracle
- LightDB-像Oracle一樣使用最佳化器提示(十)Oracle
- PostgreSQL Oracle 相容性 - connect by 2SQLOracle
- Oracle insert all一次插入多個表中Oracle
- MySQL 06 mysql 如何實現類似 oracle 的 merge intoMySqlOracle
- ORACLE sql merge into update where條件位置與效能消耗OracleSQL
- LightDB部署模式模式
- LightDB canopy 表管理