各种数据库sql比较 postgres、mysql、oracle、sqlserver

日期差异:

gbase: current

postgres: now()

mysql: now()

oracle: sysdate

dm: sysdate

sqlserver: GETDATE()

查序列差异:

if (dialect instanceof OracleDialect) {
            query = session.createSQLQuery("select " + seqName + ".nextval as seq from dual");
        } else if (dialect instanceof MySQLDialect) {
            query = session.createSQLQuery("SELECT seq(?)");
            query.setParameter(0, seqName);
        } else if (dialect instanceof InformixDialect) {
            query = session.createSQLQuery("select " + seqName + ".nextval as seq from sysmaster\\:sysdual");
        } else if (dialect instanceof PostgreSQL81Dialect) {
            query = session.createSQLQuery("select nextval( '" + seqName + "') as seq;");
        } else {
            session.beginTransaction();
            session.createSQLQuery("update seq set val=val+1 where name=?").setParameter(0, seqName).executeUpdate();
            session.getTransaction().commit();
            query = session.createSQLQuery("select val from seq where name=?");
            query.setParameter(0, seqName);
        }

sql函数差异:

oracle不支持limit

useGeneratedKeys差异:

useGeneratedKeys 允许JDBC支持自动生成主键,需要驱动兼容

 mysql,sqlserver可以使用useGeneratedKeys =true 

oracle不支持useGeneratedKeys,所以ORACLE是不能使用useGeneratedKeys =true的。  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值