博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql联查时为空补全和jdbc获取最后插入生成的id
阅读量:6952 次
发布时间:2019-06-27

本文共 1254 字,大约阅读时间需要 4 分钟。

hot3.png

如何在mysql里实现 oracle里的两表联查    cat.id=dog.id(+)这种 为空补全的方法
left  或者right    outer  join
想在哪个表补全 就放在 left或者 right
in查询 可以用left semi join 来代替(注意join表不能在select字段中出现)
   jdbc获取最后插入生成的id
   
    ps = conn.prepareStatement("insert into test(name) value(?)",Statement.RETURN_GENERATED_KEYS);  
    ps.setString(1, "test");  
    ps.execute();  
    rs = ps.getGeneratedKeys();  
    int id=0;//保存生成的ID  
    if (rs != null&&rs.next()) {  
        id=rs.getInt(1)  
    }

补充下  因为max(XXXX)函数在mysql里 不知为什么

当max(整形time)时候 居然返回的不是最大的那个整形时间~。~  哭死了  造成逻辑一直不对

所以 我用 order by time desc  在加上limit 0,1  这样组合获取到了最大值  

哎   那位大侠能告诉我 为什么mysql里max函数不好使。。。。。。

还有mysql查看慢查询语句

mysql的查询语句数
show global status like 'com_select';
mysql的查询连接数
show global status like 'connections';
连接到mysql的ip
netstat -an
进程号
netstat -anb
显示慢查询的次数(默认10秒)
show  status like 'slow_queries';
把慢查询的sql记录到日志中
需要在启动的时候指定慢查询
bin\mysqld.exe --safe-mode --slow-query-log   ( 高版本5.5  在my.ini指定)
bin\mysqld.exe - log-slow-queries=d:/abc.log    (低版本5.0 在my.ini指定)  
先关闭再重新启动(先停止服务)
默认吧日志文件放在my.ini里有个datadir路径下
重新设置慢查询为1秒
设置慢查询为1秒
show variables like 'long_query_time';
set long_query_time=1;
为了存储过程能正常执行,需要把命令结束符号修改为不为;
delimiter $$
修改为$$
处理多条数据的时候
set autocommit==0;
.......
commit;
存储过程里的for循环
repeat
set i=i+1;
.....
until i=max_num
end repeat;

转载于:https://my.oschina.net/angleshuai/blog/354954

你可能感兴趣的文章
如何优雅的操作数组
查看>>
关于Spring Cloud Netflix
查看>>
行为参数化
查看>>
MapReduce过程详解
查看>>
以太坊智能合约开发第五篇:字符串拼接—Solidity
查看>>
scala代码笔记
查看>>
MarkDown说明
查看>>
运用Vue Router的进程守护修改单页的title
查看>>
Bytom的链式交易和花费未确认的交易
查看>>
Date实战案例:倒计时&日历
查看>>
【译】Vault 学习资源:1.0, 自动解印, 代理, Kubernetes
查看>>
JavaScript系列--类型判断的4种基本方法,研究jquery的type方法,空对象的检测方法,类数组对象...
查看>>
枚举工具类
查看>>
阿里云ECS服务器部署Node.js项目全过程详解
查看>>
pm2 简介与常用指令
查看>>
cronmon 定时任务执行状态监控
查看>>
100%会问的float?
查看>>
HTTP协议
查看>>
RN学习(一)——创建第一个RN项目
查看>>
c++14 0 名字空间和条件编译
查看>>