專案oracle遷移到mysql的小總結

2021-08-30 12:33:09 字數 1665 閱讀 8159

1、更新表的不同

oracle

update ip_gn_baxx_gbxx_ls

sjxt_id = #provincesystemid#

jlid = #broadcastipid#

czjg = #operatingresult#

jgms = #resultinfo#

where rbsj = ( select max(rbsj) from ip_gn_baxx_gbxx_ls where

jlid = #tempbroadcastipid# ) and jlid = #tempbroadcastipid#

mysql

update ip_gn_ly_baxx_ls 

sjxt_id = #provincesystemid#

jlid = #sourceipid#

czjg = #operatingresult#

jgms = #resultinfo#

where id in(

select c.id from (

select id from ip_gn_ly_baxx_ls where

rbsj = (select

max(rbsj)

from ip_gn_ly_baxx_ls

where jlid = #tempsourceipid#

)and jlid = #tempsourceipid#

) c 

)   

1. 一般而言,不能更改表,並從子查詢內的相同表進行選擇。

2. 例如,該限制適用於具有下述形式的語句:

3. delete from t where ... (select ... from t ...);

4. update t ... where col = (select ... from t ...);

5. into t (select ... from t ...);

6. 例外:如果為from子句中更改的表使用子查詢,前述禁令將不再適用。

7. 例如:

8. update t ... where col = (select (select ... from t...)

9. as _t ...);

10. 禁令在此不適用,這是因為from中的子查詢已被具體化為臨時表,因此 「t」中的相關行已在滿足「t」條件的情況下、在更新時被選中。

看了上面的說明頓悟,於是再加上了乙個in的子查詢

delete 不同

oracle

delete 表名 或delete from 表名

mysql   只能是delete from 表名

insert  delete 操作是不允許使用表別名的。

update  where條件中不允許自連線

子查詢別名

mysql 子查詢返回的臨時表必須要起別名

oracle 沒有限制

group by 多列時

oracle可以對多列用括號括起來

mysql則不行,否則會報operand should contain 1 column(s) error

create table

oracle null,not null 放在default 值後面

mysql default 值 null,not null

Oracle遷移到MySQL總結

日期 2012 06 01 字型 大中小 這兩個星期裡一直都在忙於一件事兒,就是oracle資料庫的遷移問題。沒有做的時候感覺這是一件十分輕鬆的事兒,可是等到實實在在去做去實現的時候,自己傻眼了。這種糾結啊,在這裡先說下遇到的問題 1。資料庫的表結構問題 資料型別不同需要解決varchar2 var...

Oracle遷移到PostgreSQL問題

oracle遷移到postgresql 使用ora2pg的方案將oracle遷移至pg,遇到的問題多少與源oracle資料庫有多少與pg不相容的東西成正比。下面是我們遇到的問題簡單總結 應用程式裡面sqlmap.xml 人工review時的問題發現 oracle postgresql dual表 沒...

GitLab專案遷移到Gerrit

1 在gerrit上新建專案 2 gerrit專案配置許可權 此處非 reference refs push annotated tagpush signed tagforge committer identity create reference read push3 將gitlab專案轉殖至本地...