sql - SQL - 如果一个插入行不正确,则 SQL 语句已终止
问题描述
我正在尝试使用如下查询将数百行插入到表中:
Insert INTO tableX (column1, colum2)
VALUES
((SELECT sysID FROM tableY where ID = var1), 1)
((SELECT sysID FROM tableY where ID = var2), 1)
et cetera
现在假设 var88 不存在,它将返回 NULL 作为 sysID,但是我不能在 column1 中插入 NULL,所以我得到一个错误,整个插入查询将被终止。有没有办法取消整个终止并跳过 sysID = NULL 的行?我确信我可以通过首先进行正确的选择,过滤掉 NULL 行然后插入,但是我想知道是否有其他方法可以做到这一点。
解决方案
您可以改用以下内容,使用 a INSERT INTO SELECT
:
INSERT INTO tableX (column1, colum2)
SELECT sysID, 1
FROM tableY
WHERE ID IN (va1, var2) AND NOT sysID IS NULL
推荐阅读
- typescript - rxjs,我如何分组到一个对象?
- javascript - 将句子中每个单词的首字母大写的函数
- javascript - 如何限制高图表中的数据标签?
- javascript - 在搜索输入字段中获取 db mysql 值并在下拉列表中进行修改
- python-3.x - 移动覆盖重定向的顶级窗口以及允许最小化
- android - 如何正确编写 DiffUtil.Callback 以便 recyclerview 移动动画?
- javascript - Nodejs EJS 中的循环
- java - 如何使用 Java 在 MacOS X Catalina 上打开 Terminal.app 并执行脚本?
- css - CSS:即使添加了媒体查询,移动设备上的 div 仍以与桌面相同的宽度显示
- c++ - (已回答)- 在动态分配数组 C++ 时在默认构造函数中创建不同的随机数