条件插入查询(行计数验证)。 (MYSQL)

时间:2014-07-20 23:23:18

标签: mysql insert conditional

我正在尝试编写一个查询,它将计算和比较两个不同数据库中两个表的行数。如果它们相等,那么记录将被插入到另一个表格中,如果通过,否则将导致“失败”。 我还没有通过谷歌搜索找到任何答案......这是我的查询不起作用:

select
case when
((select count(1) from db1.transaction) = (select count(1) from db2.transaction))
then
insert into db3.validation (test_result) values ('pass')
else
insert into db3.validation (test_result) values ('fail')
end;

1 个答案:

答案 0 :(得分:0)

您可以通过撤消订单来执行此操作。选择insert select的{​​{1}}选择值:

insert into db3.validation(test_result)
    select (case when t1.cnt1 = t2.cnt2 then 'pass' else 'fail' end)
    from (select count(1) as cnt1 from db1.transaction) t1 cross join
         (select count(1) as cnt2 from db2.transaction) t2;

请注意,我将子查询从case移动到from子句,只是因为我觉得它们更容易以这种方式阅读。如果您愿意,可以将它们保留在case