0

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

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

2 回答 2

1

用你的陈述

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

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

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

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

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

insert into test_trk
select * from test_ply where not exists (select * from test_trk);
于 2015-10-06T08:26:47.560 回答
0

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

 INSERT INTO dms.test_trk
 SELECT * FROM dms.test_ply

应该让你走上正轨。

于 2015-10-06T06:59:05.773 回答