组合多个shell命令在sqlite3中创建临时表



我不想在sqlite3中创建一个表,然后将其删除,而是想创建一个临时表,在结束会话时将其销毁。是否可以将下面的命令组合起来,这样临时表就不会被分号破坏?

set databaseName to "test.db"
set tableName to "tempTable"
do shell script ("mkdir -p ~/Documents/Databases/ ; sqlite3 ~/Documents/Databases/" & databaseName & " "create table if not exists " & tableName & "(First, Last);  "")
do shell script ("sqlite3 ~/Documents/Databases/" & databaseName & " "insert into " & tableName & " (First, Last) values('John', 'Doe'); "")

我将如何实现此版本?

set databaseName to "test.db"
set tableName to "tempTable"
do shell script ("mkdir -p ~/Documents/Databases/ ; sqlite3 ~/Documents/Databases/" & databaseName & " "create temp table " & tableName & "(First, Last);  "")
do shell script ("sqlite3 ~/Documents/Databases/" & databaseName & " "insert into " & tableName & " (First, Last) values('John', 'Doe'); "")

SQLite本身接受分号分隔的语句。

do shell script ("sqlite3 ~/Documents/Databases/" & databaseName & " " & ¬
    "create temp table " & tableName & " (First, Last); " & ¬
    "insert into " & tableName & " (First, Last) values('John', 'Doe'); " & ¬
    " -- other stuff here --" & ¬
    "select * from " & tableName & ";"")

不过,在某种程度上,将其作为一个单独的脚本或可能的here文档编写会比构建一个巨大的do shell script更容易。

最新更新