編寫儲存過程中,經常遇到的問題就是:在同步某項資料時,我們需要做到如果庫里之前有改資訊,則更新,如果沒有則插入。在oracle儲存過程中我們可以通過merge into 來實現。但是mysql資料庫儲存過程不支援merge into。那我們應該如何實現呢?
首先我們看下在oracle資料庫中merge into的語法
merge into [target-table] a using [source-table sql] b on([conditional expression] and [...]...)
when matched then
[update sql]
when not matched then
[insert sql]
例子:
merge into a_merge a using (select b.aid,b.name,b.year from b_merge b) c on (a.id=c.aid)
when matched then
update set a.year=c.year
when not matched then
insert(a.id,a.name,a.year) values(c.aid,c.name,c.year);
commit;
mysql資料庫儲存過程中如何實現merge into功能
-- 當前資料做 對比 如果b表存在則更新時間 不存在則插入
if not exists ( select 1 from test_b where id = _id and name=_name )
then
insert into test_b (id, name,operatime) values (_id,_name,now());
else
update test_b set operatime = now() where id = _id and name=_name;
end if;
mysql儲存登入 MYSQL儲存過程實現使用者登入
create definer root function uc session login re son json,srvjson json returnsjson language sqlnotdeterministiccontainssql sql security definer commen...
mysql儲存過程 MySQL儲存過程
在本節中,您將逐步學習如何在mysql中編寫和開發儲存過程。首先,我們向您介紹儲存過程的概念,並討論何時使用它。然後,展示如何使用過程 的基本元素,如建立儲存過程的語句,if else,case,loop,儲存過程的引數。下面每個教程都包含了易於理解的示例和詳細的說明。如果您瀏覽並學習所有教程,您可...
mysql 儲存過程 mysql 儲存過程
建立 為建立儲存過程的結束標誌,使用delimiter 可更改標誌 格式create procedure begin sqlend create procedure myprocedure in param integer begin select from tb role where tb rol...