运行 查询行数是否为 0

run query if row count = 0

我创建了 3 个 tables:playlist、tracklist 和 xmlexport,我用它们来存储我的播放列表。为了避免重复播放列表中的任何项目,我使用了从播放列表中插入的曲目列表,并将曲目列表的第一行插入到我的 xmlexport 中,然后导出要在我的播放器要读取的 .xml 文件的形式。每次发生此过程时,我都会从曲目列表中删除一行,因此当 table 播放最后一个项目时它变为空&我需要 运行 查询以更新曲目列表 table 来自播放列表 table。这是我一直在玩的,但它不能正常工作。

       INSERT INTO dms.test_trk
       SELECT * FROM dms.test_ply
       WHERE row_count() <= 0;

我认为您需要一个存储过程来检查 test_trk 中的 count(*) 是否为 0。如果是,运行:

 INSERT INTO dms.test_trk
 SELECT * FROM dms.test_ply

This and this 应该会让你走上正轨。

附上你的声明

 INSERT INTO dms.test_trk
 SELECT * FROM dms.test_ply
 WHERE row_count() <= 0;

您到底希望发生什么?我本以为最后一次操作的结果(即执行此语句之前的结果)将与零进行比较,因此是否从 test_ply 中检索行。

然而,您似乎认为 row_count 以某种方式告诉您 test_trk 中是否有记录。

这两个假设似乎都是错误的。我的测试表明 row_count 在启动 INSERT 时重置为 -1,因此您根本不能在 INSERT 语句中使用此函数。

您正在寻找的是一个简单的 EXISTS 子句:

insert into test_trk
select * from test_ply where not exists (select * from test_trk);