0

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

1 に答える 1

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ます。

于 2012-04-06T16:31:40.233 に答える