MySQL 数据库将查询结果插入问题-问答-阿里云开发者社区-阿里云

开发者社区> 蛮大人123> 正文

MySQL 数据库将查询结果插入问题

2016-02-11 10:47:08 1837 1

在mysql的存储过程中执行:
insert into table1
select * from table2
where xxxx=xxxx
table1和table2的结构是一样的
但是select * from table2 where ...的结果有时候是空的
这时插入table1,就会出现Column 'ID' cannot be null的错误
请问有什么更加安全做法,如果查询的结果是空就不执行插入,MySQL有提供相关的支持么?

取消 提交回答
全部回答(1)
  • 蛮大人123
    2019-07-17 18:40:30

    我如果遇到这个问题,还不会去费尽心思想insert into table1 select * from table2 where xxxx=xxxx mysql有没有对这种语法的保护(没有数据不插入),想要这个小判断为什么不自己提前查一下有没有数据呢?用count, limit 1
    但是select * from table2 where ...的结果有时候是空的
    这时插入table1,就会出现Column 'ID' cannot be null的错误
    然后说这个,记忆中不会因为空集报错的,所以特地写了PROCEDURE试了下,如果查询的是空结果集不会报错,"Column 'ID' cannot be null"这个错误应该是ID不允许为空,但你要插入的是空,检查下吧
    这时候出现了Dead lock found when try get lock; try restarting transaction的错误。
    是不是因为insert into select...语句出错但并没有释放锁?
    个人觉得不是,请先把上面插入改正确后看是否还有锁提示,查看mysql的连接看是谁在锁这个表

    0 0
相关问答

17

回答

【大咖问答】对话PostgreSQL 中国社区发起人之一,阿里云数据库高级专家 德哥

阿里ACE 彭飞 2019-07-10 09:36:10 963984浏览量 回答数 17

8

回答

OceanBase 使用动画(持续更新)

mq4096 2019-02-20 17:16:36 333809浏览量 回答数 8

110

回答

OSS存储服务-客户端工具

newegg11 2012-05-17 15:37:18 292245浏览量 回答数 110

33

回答

Win Server 2003-2016 加密勒索事件必打补丁合集

妙正灰 2017-05-15 10:44:38 277476浏览量 回答数 33

38

回答

安全组详解,新手必看教程

我的中国 2017-11-30 15:23:46 256840浏览量 回答数 38

294

回答

Linux Bash严重漏洞修复紧急通知(已全部给出最终修复方案)

qilu 2014-09-25 13:26:50 431586浏览量 回答数 294

21

回答

请教一下数据量有100万条左右要什么配置?

易网网络 2013-03-27 15:18:02 192316浏览量 回答数 21

249

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 302568浏览量 回答数 249

2

回答

区域选择帮助

fanyue88888 2012-12-07 15:54:30 203985浏览量 回答数 2

13

回答

游戏云精彩帖汇总

nono20011908 2014-08-22 11:00:12 203617浏览量 回答数 13
+关注
蛮大人123
我说我不帅他们就打我,还说我虚伪
0
文章
7733
问答
推荐问答
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载