我不想在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
更容易。