2012-04-06 78 views
0

而不是创建,然后在sqlite3中删除一个表,我想创建一个临时表,当您结束会话时会破坏它。是否可以合并下面的命令,以便临时表不被分号破坏?结合多个shell命令在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'); \"") 

回答

1

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 & ";\"") 

在某些时候它变得更容易写出来作为一个单独的脚本,或者可能是这里的文件,而不是建立一个单一的巨大do shell script,虽然。

+0

完美,谢谢。 – adayzdone 2012-04-06 17:23:31