我正在尝试使用如下查询将数百行插入表中:
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行然后执行插入来完成此操作,但是我想知道是否还有其他方法可以执行此操作。
您可以使用以下代码,使用INSERT INTO SELECT
:
INSERT INTO tableX (column1, colum2)
SELECT sysID, 1
FROM tableY
WHERE ID IN (va1, var2) AND NOT sysID IS NULL
您在哪里/如何获得值的var1(etc)变量?
你可以将其转换为:
Insert INTO tableX (column1, colum2)
VALUES
Select SELECT sysID, 1
Where ID IN (var1, var2, etc..)
WHERE sysID is not null
或者以某种方式将其构建为循环(取决于var1等来自何处/如何)