我在ubuntu主机上有一个sqlite3数据库。我想启动一个bash脚本来操作一些包含的数据。
基本上,我已经弄清楚了SQL语句。我想用这个查询的结果(即结果集)处理多个命令。该查询跨越多个表以获得所需的全部数据。
对于每个返回的行,我想将某些字段写入文本文件(供以后使用),完成后,我想更新一行。此更新针对一个表中的一个字段。
目前,我只有以下代码生成所有行所需的输出文件:
sqlite3 database.db
.output xbmc_music_lastplayed_toitunes.txt
SELECT s.strTitle, art.strArtist, a.strAlbum, s.iTimesPlayed, s.lastplayed
FROM song as s, album as a, artist as art
WHERE s.idAlbum = a.idAlbum
AND s.idArtist = art.idArtist
AND s.iTimesPlayed > 0
如果可能的话,我希望能够从1个结果集完成两个操作。希望有人能给我一条出路。我习惯于处理数据库的编程处理,即与PHP,但在这种情况下,它是做更多的原生sqlite3引擎本身。
many thanks in advance
您可以将所有sql语句(或dot
命令)放在query.sql
中。
$ cat query.sql | sqllite3 database.db
或
$ sqlite3 database.db
sqlite> .read query.sql
我更喜欢第一个选项。因为没有相互作用