oracle可以迁徙mysql吗,项目oracle迁徙到mysql的小总结

项目oracle迁移到mysql的小总结

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. {INSERT|REPLACE} 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值