板検索:
SQLite Part.10 (618)
まとめビュー
1
NAME IS NULL[sage]   投稿日:2012/08/16 21:54:16  ID:???.net(521)
組み込み型データベース SQLite について語るスレッドです。

SQLite
http://www.sqlite.org/

・C/C++ API
 http://www.sqlite.org/c3ref/intro.html

・Syntax
 http://www.sqlite.org/lang.html

・Limits
 http://www.sqlite.org/limits.html

・Support
 http://www.sqlite.org/support.html
コメント7件


2
NAME IS NULL[sage]   投稿日:2012/08/16 21:54:47  ID:???.net(521)

3
NAME IS NULL[sage]   投稿日:2012/08/16 21:55:28  ID:???.net(521)
【ツール】
 http://www.sqlite.org/cvstrac/wiki?p=ManagementTools

・TkSQLite
 http://reddog.s35.xrea.com/wiki/TkSQLite.html
・PupSQLite
 http://www.eonet.ne.jp/~pup/software.html
・SQLite Manager (Firefox add-on)
 http://code.google.com/p/sqlite-manager/
 https://addons.mozilla.org/ja/firefox/addon/5817

【ラッパ】
 http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers

・System.Data.SQLite (ADO.NET 2.0 Provider)
 http://sqlite.phxsoftware.com/
・SQLite ODBC Driver (ODBC)
 http://www.ch-werner.de/sqliteodbc/
・SQLite JDBC driver (JDBC)
 http://www.xerial.org/trac/Xerial/wiki/SQLiteJDBC
・SQLite Java Wrapper/JDBC Driver (JDBC、Java)
 http://www.ch-werner.de/javasqlite/
・SQLiteJDBC (JDBC)
 http://www.zentus.com/sqlitejdbc/ ※ページ行方不明

4
NAME IS NULL[sage]   投稿日:2012/08/16 21:56:04  ID:???.net(521)
【ネタ】

・OS X ハッキング! SQLiteが広げるこれからのアプリケーション
 http://journal.mycom.co.jp/column/osx/236/

・SQLite Java Wrapperのコンパイル
 http://syo.cocolog-nifty.com/freely/2007/10/sqlite_java_wra_f79c.html

・生まれ変わるPHP - Zend Engine 2、SQLiteの実力は?
 http://news.mynavi.jp/special/2004/php5/007.html

・SQLite性能評価その1
 http://www.sutosoft.com/room/archives/000450.html

・Fulltext index on SQLite
 http://www.dodgson.org/omo/t/?date=20061001

・SQLite の全文検索を Python から使ってみる (1)
 http://plaza.rakuten.co.jp/kugutsushi/diary/200707270001/

・SQLite Full Text Search with MeCab
 http://reddog.s35.xrea.com/wiki/SQLite%20Full%20Text%20Search%20with%20M...

・MSDN Magazine: 働くプログラマ - SQLite の内部
 http://msdn.microsoft.com/ja-jp/magazine/ff898405.aspx

・アドビ、SQLite Consortiumに参加で開発を支援
 http://builder.japan.zdnet.com/db-sql/20368174/

・SQLiteに参加、Berkeley DBの置き換え狙うOracle
 http://news.mynavi.jp/news/2010/07/06/032/index.html

・How SQLite Is Tested
 http://www.sqlite.org/testing.html

5
NAME IS NULL[sage]   投稿日:2012/08/16 21:56:41  ID:???.net(521)
【書籍】

・SQLite入門 第2版 (西沢直木 著)
 http://www.amazon.co.jp/dp/479811944X/
 入門用にはとりあえずこの一冊?

・新標準SQLite
 http://www.amazon.co.jp/dp/4797354739/

・SQLite ポケットリファレンス
 http://www.amazon.co.jp/dp/4774143944/

・Pocket詳解 SQL辞典 (堀江美彦 著)
 http://www.amazon.co.jp/dp/4798018619/
 各種 RDBMS 対応の SQL のリファレンス本で、SQLite にも対応。
 が、ざっと見たところ SQLite に関してはあまり緻密に調べられておらず
 不正確なところもあるように見受けられる。

・基礎から学ぶWebデータベースプログラミング (堀川久 著)
 http://www.amazon.co.jp/dp/4274065294/
 前半は SQL の基礎について、後半は Ruby で Web アプリの作成についての説明。
 PostgreSQL, MySQL, SQLite の仕様の違いにも触れられている。
 が、 SQLite は SQLite2 ベースなので情報が古いかも。

・PHP+SQLite実践サンプルブック (豊崎直也 著)
 http://www.amazon.co.jp/dp/4883374297/
 内容不明。7年前の本。

・The Definitive Guide to Sqlite (Mike Owens 著)
 http://www.amazon.co.jp/dp/1590596730/

・SQLite (Developer's Library) (Chris Newman 著)
 http://www.amazon.co.jp/dp/067232685X/

・Using SQLite (Jay A. Kreibich 著)
 http://www.amazon.co.jp/dp/0596521189/

6
NAME IS NULL[sage]   投稿日:2012/08/16 21:56:54  ID:???.net(521)
テンプレここまで。
SQLiteスレもついにスレ番2桁目に突入です。

7
NAME IS NULL[]   投稿日:2012/08/17 00:25:14  ID:SazVH8Xb.net(2)
SQLiteでの同時処理について質問です。
あるテーブルで値を+1する処理を行っています。

UPDATE sample_table SET count=count+1 WHERE num = $num

処理が呼ばれるとsample_tableのcountが1増えます。
ですがこが同時に100回行っても100増えません。
ゆっくりと100回行うと100増えます。

おそらく前の処理をしている最終に読み取った値に+1をしているのでうまく増えていないということだと思うんですがどのようにすれば行った回数分countを増やせるでしょうか。
コメント1件

8
NAME IS NULL[sage]   投稿日:2012/08/17 18:35:23  ID:???.net(521)
>7
前の処理のロック区間中にUPDATEしようとしてエラーになった分が更新されていない、とか
更新される前のcountの値を読み込んでインクリメントしたので前と同じ値を上書きしてしまっている、とか

いくつか原因は考えられるけど、情報が足りないので答えられないです。
・そもそも「同時処理」とは何を想定している?
・「同時に100回行う」ための手段(orコード)は?(SQL文だけ貼られても何がしたいのか分からない)
・「ゆっくり」とは何をどうしたの?
コメント1件

9
7[]   投稿日:2012/08/17 20:59:58  ID:5J6i+lyv.net
>8
回答ありがとうございます。

こちらのcount+1を行うものはWEBサイトにおいておりまして、特定のアクセスが行われると+1されるというものになります。
そのため不特定多数の場所からアクセスがある状況です。
アクセスカウンターのようなものをSQLite3で行っておりアクセス毎に+1されます。

同時処理についてですが、こちらはWEB上から処理を行うようになっております。
そのため複数の箇所から同時に多数の要求があった場合に処理が複数走ることを指します。

100回行うコードというのはありません。
テストのためにApacheのabというツールで10アクセス10スレッドで100のアクセスを行いました。
その際に+100ほど数値が増えないといけないのですが、実際には30程度しか増えておりませんでした。

ゆっくりというのは手動でアクセスを100回した場合のことを指しております。
F5でリロードを100回するのに近いと思います。
そのためゆっくりアクセスを行うというニュアンスで使用いたしました。

質問内容に不備があり申し訳ありませんでした。
対策が思いつかないのでアドバイスなどいただけると助かります。
コメント2件

10
NAME IS NULL[sage]   投稿日:2012/08/17 22:09:50  ID:???.net(521)
ただの排他漏れだろ
アクセスカウンタ作ったことないの?
コメント1件

11
NAME IS NULL[sage]   投稿日:2012/08/17 22:25:47  ID:???.net(521)
>9
質問する時はコードも貼ること。
もちろん、100回のクエリが全部成功してるかどうかは確認したんだよね?

12
7[]   投稿日:2012/08/17 23:00:01  ID:SazVH8Xb.net(2)
>9
アクセスカウンタは作ったことあります
排他制御も知ってはおりますが、SQLiteではどのように排他制御を行うのでしょうか?

>10
100回のアクセスが成功していることは確認しています。
アクセスのテストについては申し訳ないですがツールを使用しているためコードがありません。
カウントの部分については

$connect = count_db();
$countup = $connect ->prepare("UPDATE sample_table SET count=count+1 WHERE num = $num");
$countup ->execute();

となります。
コメント1件

13
NAME IS NULL[sage]   投稿日:2012/08/18 01:21:41  ID:???.net(521)
>12
SQLiteはそこら辺のDBMSと同じで別に何もしなくても「排他制御」はされるよ。
「100回のアクセス」とやらが成功しているのをどうやって確認したのか知らないけど、どう考えてもSQLクエリの実行が失敗してる。

見たところPHP+PDOって感じだけど(質問する時は言語名くらい書くこと)、count_db()が何だか分からないし、
prepareなのにプレースホルダ使ってないし、クエリの実行結果が成功かどうか確認しているようにも見えないし、
とりあえずPHPとPDOとデータベースを先に勉強した方が良いと思うよ。

あと、テーブル構造とか変数が何だか分からないから、クエリ自体があってるのかすら確認できないけど、まあそれはいいや。
コメント1件

14
7[]   投稿日:2012/08/18 01:37:10  ID:ZAlPZ/Vl.net(2)
>13
アクセスの成功に関しては負荷ツール側で全てのリクエストがHTTPステータス200で終了していることで確認しました。
ですのでSQLクエリの実行が失敗していると見てよいのかの判断がついておりませんでした。

排他制御は行われているとの事なのでカウントがプラスされていない時点でクエリが正常に実行されていないと見るべきでした。
申し訳ありません。

count_db()については
function count_db()
{
$connect = new PDO("sqlite:./sample_table.sql3");
return $connect ;
}
となります。

テーブル構造は
sample_table
------------------
|num | count |
------------------
|index | 1 |
|contact | 30 |
------------------
このようになってます。
num側にページアドレス・count側にアクセス数が入っています。

PDOとデータベースの勉強のためにまずは簡単なアクセスカウンターを作ってみようかと思って作成いたしました。
コメント1件

15
NAME IS NULL[sage]   投稿日:2012/08/18 02:45:18  ID:???.net(521)
>14
ページアドレスがnum…。まあいいけど。

データベースにしてもPDO(と言うかPHP)にしても入門書は腐るほど出版されてるから、
とりあえず適当なのを買ってきて読めば一通りのことは出来るようになると思う。

あと、HTTPの仕組みとかも勉強した方がいいかもね。
SQLクエリの実行結果は [DBMS] → [PHP]
HTTPステータスは [PHP(と言うかWEBサーバ)]→[WEBブラウザ]

ちなみに、今回のは排他制御がかかってる時に同時にUPDATEしようとしてエラーになったらどうするか、の考慮が漏れてるのが問題。
おそらくロック待ちのタイムアウト値が設定されていないので、100回のうちエラーになった分はスルーされてる。

これだけレスしておいてあれだけど、微妙にスレ違い(今のところあんまりSQLite関係ない)だし、ヒントも書いたので、
あとはWEBプログラミング板の適当なスレに移動した方が幸せになれるかもしれない。勉強頑張れ。
コメント1件


16
7[]   投稿日:2012/08/18 10:12:45  ID:ZAlPZ/Vl.net(2)
>15
ありがとうございます。
排他中の制御に関してはまったく考慮しておりませんでした。
前の処理が終わるまで順番に待っているだろう
くらいの認識でした。

amazonあたりで評価の高そうな本をいくつか見てみたいと思います。
ありがとうございました。

17
NAME IS NULL[sage]   投稿日:2012/08/19 12:50:44  ID:???.net(521)
外部結合しているテーブルの行をを一度に消す方法はないのでしょうか?
delete TBL_A from TBL_A left join TBL_B on TBL_A.keyid = TBL_B.id where TBL_B.keyid = 4;

delete from TBL_A from TBL_A left join TBL_B on TBL_A.keyid = TBL_B.id where TBL_B.keyid = 4;
など紹介されているものを色々試してみたのですが、どうしてもsyntaxerrorがdelete直後の単語ででてしまいます。
テーブルごとに削除するしかないのでしょうか…?

18
NAME IS NULL[sage]   投稿日:2012/08/19 12:58:41  ID:???.net(521)
DELETEはFROM一つしか書けないよ。JOINも当然書けない。
メインのテーブルのレコードを削除したとき必ず従属テーブルのレコードを削除するならトリガーに書きなよ。
コメント1件

19
NAME IS NULL[sage]   投稿日:2012/08/19 13:10:56  ID:???.net(521)
>18
回答ありがとうございました。
トリガー使ったことないのですが、挑戦してみます。

20
NAME IS NULL[sage]   投稿日:2012/09/01 21:03:38  ID:???.net(521)
ばか

21
NAME IS NULL[sage]   投稿日:2012/09/02 10:39:44  ID:???.net(521)
そんな事言うんじゃないよ

22
NAME IS NULL[]   投稿日:2012/09/04 15:49:22  ID:F14l33sJ.net
sqliteのファイルを読み込む際に、そのファイルがsqliteのファイルであるかどうかを確認することはできますか?
sqlite以外のファイルを読み込んだ際に当たり前ですがエラーが出るのでそれに対処したいと思っています。
読み込むsqliteのファイル名に規則性がないので振り分けができないので、ファイルがsqliteファイルであるかどうか確認する方法があれば教えてもらえると助かります。
コメント1件

23
NAME IS NULL[sage]   投稿日:2012/09/04 18:33:24  ID:???.net(521)
3.7.14

24
NAME IS NULL[sage]   投稿日:2012/09/04 18:48:09  ID:???.net(521)
>22
自分で結論にたどり着いてるみたいだけど…。

>sqliteファイルであるかどうか確認する方法
>sqlite以外のファイルを読み込んだ際に当たり前ですがエラーが出る
コメント1件

25
NAME IS NULL[sage]   投稿日:2012/09/04 19:16:39  ID:???.net(521)
>24
ワロタ
確かに、エラーが出てるとわかってるならそれでいいじゃんとなるけどねw

事前に判断することができるか?という希望に答えるとすると、
C言語的にはファイルを開いて先頭16バイトバイナリ読込して、
"SQLite format 3\x00"とmemcmpして見れば一応わかる。
ただし、こんなものは偽装はできるし、このヘッダ部は正常でも、sqlite的に演算したら
ファイルが破損していた場合は結局エラーになるので価値は・・・疑問かな。
sqlite3_openv2がエラーを返すならそれで判断するのが良いよ。


26
NAME IS NULL[sage]   投稿日:2012/09/08 22:56:07  ID:???.net(521)

27
NAME IS NULL[]   投稿日:2012/10/01 13:04:19  ID:Miyu12UY.net
SQLite3使ってますがカラムの追加は最後尾にしか出来ないでしょうか?
| 1 | 2 | 3 | 4 |
とあった場合
| 1 | 2 | 3 | 3.5 | 4 |
としたいと思ってます。

コメント3件

28
NAME IS NULL[sage]   投稿日:2012/10/01 18:41:19  ID:???.net(521)
>27
http://www.sqlite.org/lang.html
http://www.sqlite.org/lang_altertable.html
http://www.sqlite.org/lang_select.html

質問する時は、何をするために、どういうSQL文を使って、結果がどうなって、それが目的とどう違ったか、くらいは書くこと。
じゃないと ドキュメント読んで下さい くらいしか答えられない。
コメント2件

29
NAME IS NULL[sage]   投稿日:2012/10/01 20:48:13  ID:???.net(521)
>27
ALTERならどのDBMSでもそうじゃないの?
テーブルを作り直してINSERTすればいいじゃん。

30
NAME IS NULL[sage]   投稿日:2012/10/01 21:13:45  ID:???.net(521)
そういう話なら、alter table文の最後に"before カラム名"とか"after カラム名"をつけると、テーブルをselect *で見た時に、
意図した場所に入ったように見せる(物理ディスク上はどうせ最後に追加される)ことができるRDBMSは結構あると思う。

けど、もしかしたらSQL標準には無かったかもしれない。

と言うか>27の目的はselect文で順番を変えるだけで済むような。

31
NAME IS NULL[sage]   投稿日:2012/10/02 09:44:14  ID:???.net(521)
select *しか知らいないと予想してみる

32
NAME IS NULL[]   投稿日:2012/10/02 10:27:01  ID:mMJozPXq.net(3)
SQLite3はMySQLみたいに任意の場所に追加は出来なかったと思う
どうしても順序通りに作りたいなら
テーブル作り直して、Insertしかないと思う。

SQLite3で before カラム名 が出来るかどうかは試したこと無い。

33
NAME IS NULL[]   投稿日:2012/10/02 14:19:36  ID:mMJozPXq.net(3)
SQLiteってあんまし触ったこと無かったけど
insert into test('test','test2') values ('1','2'),('3','4');
って出来ないの?
insert into test('test','test2') values ('1','2');
なら出来るんだけど、複数insertするとときの作法がよくわからない。

34
NAME IS NULL[sage]   投稿日:2012/10/02 15:03:40  ID:???.net(521)
>28にもあるようにドキュメント読めばすぐに解決できるだろうが
http://www.sqlite.org/lang.html

35
NAME IS NULL[]   投稿日:2012/10/02 15:10:52  ID:mMJozPXq.net(3)
なるほどね
さすがにLiteっていうだけあって色々制限あるね

というかこれからの質問は

ドキュメント読めばすぐに解決できるだろうが
http://www.sqlite.org/lang.html

のテンプレ張れば解決だな

36
NAME IS NULL[sage]   投稿日:2012/10/02 19:11:09  ID:???.net(521)
と言うか最初からテンプレにある。>1にアンカ張れば解決。

37
NAME IS NULL[sage]   投稿日:2012/10/02 23:24:28  ID:???.net(521)
sqlite> .version
SQLite 3.7.14 2012-06-30 ********
sqlite> CREATE TABLE jedict (jword TEXT, eword TEXT);
sqlite> INSERT INTO jedict ('hon', 'book') , ('kon', 'navy'), ('mon', 'gate');
sqlite> select group_concat(jword, '_') from jedict;
hon_kon_mon
コメント1件

38
NAME IS NULL[]   投稿日:2012/10/03 08:58:58  ID:7gCK7EIm.net(2)
>37
これで挿入は出来るんだけどカラム増やすためにDB作り直したときにいっつもこまってるんだよね
sqlite> CREATE TABLE jedict (jword TEXT, eword TEXT)

sqlite> CREATE TABLE jedict (jword TEXT, eword TEXT, hword TEXT);
にしたとき
INSERT INTO jedict ('hon', 'book') , ('kon', 'navy'), ('mon', 'gate');
だと困るからいっつも
INSERT INTO jedict ('hon', 'book', '') , ('kon', 'navy', ''), ('mon', 'gate', '');
こんな感じに書き直してから挿入するので手間がかかってしょうがない



コメント1件

39
NAME IS NULL[]   投稿日:2012/10/03 10:20:22  ID:CNQU59aT.net
hword カラムを not null default '' にして追加したあと
INSERT INTO jedict (jword, eword) values ('hon', 'book') , ('kon', 'navy'), ('mon', 'gate');
じゃダメ?

40
NAME IS NULL[]   投稿日:2012/10/03 19:31:42  ID:7gCK7EIm.net(2)
そういう手もあるか

そもそもSQLiteで移植ってみんなどうやってんの?
MySQLとかならphpyAdminとか使ってラクラク出来るけどSQLiteでそういうのあるの?

41
NAME IS NULL[sage]   投稿日:2012/10/03 19:47:28  ID:???.net(521)
ごめん、移植ってのがよく分からない。

流れ的に>38みたいにDB作り直して中のデータの一部or丸ごとをコピーすること?
それとも他のRDBMSにデータを持って行ったり、持って来たりすること?
コメント1件

42
40[]   投稿日:2012/10/03 20:11:21  ID:/OiJBnwO.net(2)
>41
DB作り直して中のデータを丸ごとコピーしたりすること
言葉足りずで申し訳ない
コメント1件

43
NAME IS NULL[sage]   投稿日:2012/10/03 21:01:38  ID:???.net(521)
そもそも、中身を丸ごとコピーしないといけないような重要なDBを、
構造を変えて作り直す状況があんまり無いんじゃ…。

44
NAME IS NULL[sage]   投稿日:2012/10/03 21:27:07  ID:???.net(521)
>42
sqlで出来るならそれで。
できないならぶっちゃげぱっとスクリプト書いちゃうな。

45
NAME IS NULL[sage]   投稿日:2012/10/03 21:33:00  ID:???.net(521)
年中作り直すのは設計に問題がある。
カラムの追加ぐらいでいちいち作り直さない。

46
40[]   投稿日:2012/10/03 21:45:30  ID:/OiJBnwO.net(2)
さすがにカラム追加するだけで作り直しとかはないけど
拡張して追加よりは作り直したほうがいい場合が年に1回くらいあったりしてたんで
みんなどうやってんのかと思って。

47
NAME IS NULL[sage]   投稿日:2012/10/03 21:53:02  ID:???.net(521)
年中作りなおすなんて書いてないだろ。
質問者は、作りなおすハメになったのが設計の甘さかどうかなどは問わず、
「みんな、どうするのかな?」って軽いつもりで聞いてるんだろ。

エラソーに設計に問題がーとか言ってるのは意図を汲めない馬鹿丸出しの発言だろ。
SE/PGだけが業務でコンピュータを使いう時代じゃないんだ。
少しは考えろよ。
コメント2件

48
NAME IS NULL[sage]   投稿日:2012/10/03 21:55:52  ID:???.net(521)
>47
訂正、業務かどうかも前提とすべきではなかったな。

49
NAME IS NULL[sage]   投稿日:2012/10/03 22:44:52  ID:???.net(521)
「作り直す時のテクニックをみんなで考えよう」じゃなくて「みんなどうやってんの?」だからなー。
業務だったらそんなマズい設計にはならないし、趣味だったら入れなおすほどのデータなんて扱わない人が大半だろうから、
質問者へのレスとしては間違ってないと思うぞ。年中云々は知らんけど。

仮に前者を問いかけたつもりなんだとしたら聞き方を間違えてる。

50
sage[sage]   投稿日:2012/10/04 10:04:32  ID:???.net(521)
phpMyadminみたいにWEB上でお手軽に出来るのがあればいちいちスクリプト組んだりコマンド流したりやんなくていいんだろうけどね

俺はデータをどっかに持ってく場合は
各値を'で囲んで取り出して1レコードを()でくくる感じで吸い出す
('a', 'b', 'c')
こんな感じ。
あとは引越し先にinsertで突っ込む。
1回だけ構造が違うところに突っ込むことがあったけど、そんときは
('a', 'b', '', 'c')
って感じにして対応した。
そんときは80万レコードあったので2個目の,のあとに'', を追加するスクリプト組んで書き換えた。

このやり方がスマートかどうかはわかんないけど、おれは引越しするときはいつもこんな感じでしてる。

コメント1件

51
NAME IS NULL[sage]   投稿日:2012/10/04 11:55:58  ID:???.net(521)
>47
いったい誰と戦っているんだよ?空気脳さん.

52
NAME IS NULL[sage]   投稿日:2012/10/07 06:57:54  ID:???.net(521)
3.7.14.1

53
NAME IS NULL[sage]   投稿日:2012/10/09 09:14:57  ID:???.net(521)
PHP上からSQLiteファイル内のデータを全部引っこ抜くようなのって無いんだっけ?
全レコードを>50みたいな感じでおいらも引っこ抜いてるんだけど。


54
NAME IS NULL[sage]   投稿日:2012/10/14 21:06:47  ID:???.net(521)
keyとvalueしかない構造だから悩まない

55
NAME IS NULL[sage]   投稿日:2012/10/14 21:10:10  ID:???.net(521)
突然どうした?

56
NAME IS NULL[sage]   投稿日:2012/10/15 10:31:13  ID:???.net(521)
追加とか変更とかは適当にコマンド流すけど
何か変更することあればFirefoxのSQLiteManagerってやつでいじってる

それ以上のことやろうと思うならそもそもSQLiteとか使わずMySQLとか使ってるしな

57
NAME IS NULL[sage]   投稿日:2012/10/23 19:10:42  ID:???.net(521)
だからどうした?

58
NAME IS NULL[sage]   投稿日:2012/10/25 17:03:37  ID:???.net(521)
以下の様なデータが格納されているデータベースで

1
1
1
2
2
3
3
3
4

とあるデータで各値が何回出てくるかカウントするってことは出来ますか?

1=3回
2=2回
3=3回
4=1回

みたいな検索結果を得たいと思ってます。

コメント1件

59
NAME IS NULL[sage]   投稿日:2012/10/25 18:29:44  ID:???.net(521)
table名 theTable
カラム名 a int

a
--
1
1
1
2
2
3
3
3
4
--

select a, count(*) as cnt from theTable group by a order by a
コメント1件

60
NAME IS NULL[sage]   投稿日:2012/10/25 19:00:24  ID:???.net(521)
>59
解凍ありがとうございます。
こういう組み合わせ知らなかったので凄い勉強になりました。

61
NAME IS NULL[sage]   投稿日:2012/10/25 20:50:40  ID:???.net(521)
まさかこんなレベルでプログラマじゃないよなw

62
NAME IS NULL[sage]   投稿日:2012/10/25 20:55:25  ID:???.net(521)

63
NAME IS NULL[sage]   投稿日:2012/10/26 11:16:29  ID:???.net(521)
SQL知らなくても凄腕のプログラマもいるし

64
NAME IS NULL[]   投稿日:2012/11/02 09:43:36  ID:jaaHOkOC.net
SQLiteって別ドメインであってもファイルにアクセスさえ出来れば、どこに置いてても操作できる?

65
NAME IS NULL[sage]   投稿日:2012/11/08 09:55:55  ID:???.net(521)
http://www.sqlite.org/faq.html#q5

5) Can multiple applications or multiple instances of the same application access a single database file at the same time?

抜粋意訳
NFSでマウントすればリモートアクセス出来るが、NFSのファイルロックは信頼性か低いものもありオススメしない

66
NAME IS NULL[]   投稿日:2012/11/08 13:44:03  ID:NYXd8Y9V.net
SQLiteってクロスドメインとかいけるんだっけ

67
NAME IS NULL[sage]   投稿日:2012/11/12 06:32:33  ID:???.net(521)
ファイルって複数のテーブル突っ込んでサイズデカくなっても
ひとつのテーブルへの速度に影響ないレベル?

68
NAME IS NULL[]   投稿日:2012/11/12 12:11:03  ID:Gm0PmwJY.net
検索はそんなにかわんない
でもinsertとかupdateとかとかになると件数が10万件とかあると多少違ってくる
コメント1件

69
NAME IS NULL[sage]   投稿日:2012/11/12 16:19:44  ID:???.net(521)
>68
ありがと! 検索メインなのでまとめてみます!

70
NAME IS NULL[]   投稿日:2012/11/13 09:20:19  ID:nIGWXzwT.net
SQLiteってDB自体を暗号化って出来る?
コメント1件

71
NAME IS NULL[sage]   投稿日:2012/11/13 11:25:00  ID:???.net(521)
SQLCipherってので暗号化できるみたいだけど半有料

72
NAME IS NULL[sage]   投稿日:2012/11/13 14:18:38  ID:???.net(521)
書き出しと読み出しの部分のソスを書き換えて...
なんてのは出来そう?
コメント1件

73
NAME IS NULL[sage]   投稿日:2012/11/13 19:05:43  ID:???.net(521)
>70
>1のSupportを参照。有料で別ライセンス(パブリックドメインではない)だけど本家が出してる。
コメント1件

74
NAME IS NULL[sage]   投稿日:2012/11/13 20:11:51  ID:???.net(521)
暗号化してインサートすればいいんじゃね?
コメント2件

75
NAME IS NULL[sage]   投稿日:2012/11/14 13:58:27  ID:???.net(521)
>72 する手間かけるくらいなら >74 の方が良いね

76
NAME IS NULL[sage]   投稿日:2012/11/14 14:22:17  ID:???.net(521)
そか IO部分はそのままという事ね。
すぐ 出来そうな感じはする。
出来ないけどorz

77
NAME IS NULL[sage]   投稿日:2012/11/14 15:01:33  ID:???.net(521)
>74-75
暗号化してinsertしちゃったら
検索出来なくなるじゃん
コメント1件

78
NAME IS NULL[sage]   投稿日:2012/11/14 17:19:18  ID:???.net(521)
I/Oはそのままってだけですよ。

79
NAME IS NULL[sage]   投稿日:2012/11/14 19:33:12  ID:???.net(521)
>77
検索キーも暗号化して検索すればいいんじゃね?
コメント1件

80
NAME IS NULL[sage]   投稿日:2012/11/14 19:42:07  ID:???.net(521)
部分文字列の比較とか難しくないか?
SUBSTRINGを使った場合位置が保証されるかとか。

81
NAME IS NULL[]   投稿日:2012/11/16 09:14:45  ID:A4atXoQO.net
そりゃrotみたいな単純なもんならいいけど、暗号化とは言えないし、そもそもそれだと部分一致とかマルチバイトとか面倒だろ

82
NAME IS NULL[sage]   投稿日:2012/11/16 12:01:41  ID:???.net(521)
>79
キーだけ暗号化した暗号文と
キーを含む文字列を暗号化した暗号文が
部分一致することは普通はあってはならない

83
NAME IS NULL[sage]   投稿日:2012/11/16 19:56:51  ID:???.net(521)
というか、一般にそれを暗号化とは言わない。
スレ違いなのでプログラム技術板あたりへどうぞ。

84
NAME IS NULL[sage]   投稿日:2012/11/18 18:11:07  ID:???.net(521)
出来ないなら普通に出来ないって言えばいいのに

85
NAME IS NULL[sage]   投稿日:2012/11/18 18:41:32  ID:???.net(521)
暗号化した文字の比較とかの話だからスレ違いってことでしょ

暗号化が出来る/出来ないの話なら>73で出来るって結論が出てる

86
NAME IS NULL[sage]   投稿日:2012/11/18 21:39:05  ID:???.net(521)
馬鹿には無理

87
NAME IS NULL[sage]   投稿日:2012/11/26 18:23:42  ID:???.net(521)
sqliteってファイルベースのデータベースじゃん
その作成されるデータファイルのパーミッションやユーザ権限ってどうなってんの?
ユーザ毎に保存してくれる?

88
NAME IS NULL[sage]   投稿日:2012/11/26 19:29:19  ID:???.net(521)
最後の一行がよく分からないけど、実行したユーザの権限で作成されるよ。

89
NAME IS NULL[sage]   投稿日:2012/11/27 06:20:08  ID:???.net(521)
ありがとー

90
NAME IS NULL[sage]   投稿日:2012/11/27 21:34:23  ID:???.net(521)
sqlite3_close_v2 よいよね

91
NAME IS NULL[sage]   投稿日:2012/12/13 00:45:58  ID:???.net(521)
3.7.15

92
NAME IS NULL[sage]   投稿日:2012/12/19 16:46:02  ID:???.net(521)
SQLite3の1つのDBの中に、最大でいくつまでテーブルが作成できるのでしょうか?
コメント1件

93
NAME IS NULL[sage]   投稿日:2012/12/19 20:57:45  ID:???.net(521)
>92
>1
答えはないけどヒントは書いてある。
コメント1件

94
NAME IS NULL[sage]   投稿日:2012/12/20 20:48:57  ID:???.net(521)
3.7.15.1

95
NAME IS NULL[sage]   投稿日:2012/12/24 08:40:38  ID:???.net(521)
.netなんですけど1つ目のテーブル読みながら2つめにコピーしようと
してるんですがdatabase file is lockedになります
mdbでやってた時は動いててそれをsqliteに置き換えただけなのですが
原因わかりますでしょうか

96
NAME IS NULL[sage]   投稿日:2012/12/24 13:12:05  ID:???.net(521)
エスパーじゃないので分かりません
コードとかSQL文を貼ってみてはいかがでしょうか

97
NAME IS NULL[sage]   投稿日:2012/12/25 12:26:49  ID:???.net(521)
>93
すみません
いろいろと調べているのですが見つかりません。

レコード数やフィールド数はビルドオプションで設定ができるのですが、テーブル数の設定は見つけることもできません。
定数ではなく、環境依存の値になってしまうのでしょうか?

98
NAME IS NULL[sage]   投稿日:2012/12/28 01:40:36  ID:???.net(521)
テーブル数の上限はたぶん未定義で環境(ディスク残量など)に依存。
ソースを見ても SQLITE_MAX_TABLES みたいなそれらしき記号定数なし。

ためしに機械的な名前(T_0, T_1, .. T_99999)でテーブルを10万個作成してみたが作れた。

99
NAME IS NULL[sage]   投稿日:2012/12/29 00:55:06  ID:???.net(521)
予想だけど…。

SQLiteは作ったテーブルやインデックス、ビュー、トリガーとかのスキーマ情報を、
同じファイル内の特殊な予約テーブル"sqlite_master"に格納してる。
で、レコード数の上限は2の64乗=18446744073709551616と書いてある。
これをテーブル情報だけで全部使い切るには1800京個くらいのテーブルを作る必要があるけど、
仮に1レコード1バイトしか使わなかったとしても全部使えばsqlite_masterテーブルだけで170億GBくらい必要。
実際にはテーブル情報以外にも格納するから、もう少し減るとは思うけど、事実上無制限。

と、ここまで書いて気がついたけどsqlite_masterが埋まる前にページ数の上限の方が先に来るのかな?
アーキテクチャをちゃんと読まないで適当に書いてるけど、sqlite_masterの各行に、それぞれのデータが
格納されているページ番号(の先頭)を指定してた気がするから、ページ番号とB-Treeの先頭の対応が1:1で、
それぞれのテーブルが全部1ページ内に収まってるとすれば、ページ数の上限は2の31乗-2=2147483646だと
書いてあるから、そっちの上限に先に到達するのかもしれない。


どっちにしても通常運用で支障が出ることはないくらい沢山作れそうだけど、
嘘をいっぱい書いてるかもしれないので詳しい人いたら解説お願いします。

100
あぼーん[あぼーん]   投稿日:0000/00/00 00:00:00
あぼーん

101
NAME IS NULL[]   投稿日:2013/01/07 09:17:58  ID:6FlDIcs/.net
10万個もテーブル作れるならもう1データ1テーブルとかでもいいかと思ってしまうわ。
実際にはやんないけどSQLiteで扱う程度のデータならそこまで大規模になるなら別のDB使うだろうし。

それにしても暗号化ないのがちょっと不安になるわ。
案件にもよるんだろうけどみんな暗号化とかそういうの気にせず使ってるの?

102
NAME IS NULL[sage]   投稿日:2013/01/07 16:13:46  ID:???.net(521)
他で暗号化してから格納したら?

103
NAME IS NULL[sage]   投稿日:2013/01/07 16:58:50  ID:???.net(521)
案件によるって書いてあるじゃんw

104
NAME IS NULL[sage]   投稿日:2013/01/07 18:30:21  ID:???.net(521)
気にせずと言うか、SQLiteを使う案件で、かつ暗号化が必要というのに今のところ出くわしたことが無い。
もしそういうのが来たら自前で暗号化して積むか、本家の暗号化オプション買うかの2択かなあ。
コメント1件

105
NAME IS NULL[sage]   投稿日:2013/01/07 22:41:13  ID:???.net(521)
自前で暗号化とかすると検索が面倒になる気がしないでもないけどSQLiteは文字通りLiteなんだからしょうがないか
コメント1件

106
NAME IS NULL[sage]   投稿日:2013/01/07 23:02:36  ID:???.net(521)
と言うか先にデータを暗号化してからinsertするじゃ意味無いよね?
>104はSEEを買うか、代わりにvfsで暗号化レイヤーを実装するか、って話だと思ってた…

107
NAME IS NULL[sage]   投稿日:2013/01/08 02:24:15  ID:???.net(521)
>105
隠したい項目(暗号)をWHERE条件で検索できたら そもそも駄目じゃない?

108
あぼーん[あぼーん]   投稿日:0000/00/00 00:00:00
あぼーん

109
NAME IS NULL[]   投稿日:2013/01/09 10:37:48  ID:PQochI3F.net
質問です。

全角半角大文字小文字の英数字が入り交じった項目があって、これらを全て同一視して検索する手段はありますでしょうか。
また、ひらがな、カタカナについても、おなじく同一視して検索する手段はありますでしょうか。
コメント1件

110
NAME IS NULL[sage]   投稿日:2013/01/09 18:22:22  ID:???.net(521)
質問の意味が分からない
同一視って何?

111
NAME IS NULL[sage]   投稿日:2013/01/09 19:22:29  ID:???.net(521)
A=A=a=aとして扱いたいんでしょう。

112
NAME IS NULL[sage]   投稿日:2013/01/09 21:05:14  ID:???.net(521)
select文を全角で入れたいのかもしれん。

113
NAME IS NULL[sage]   投稿日:2013/01/09 21:13:02  ID:???.net(521)
検索対象の文字列がカラム A に入っているとする。

まずカラム A の文字列の英小文字を英大文字に変換する。
上記で変換したデータの中の、半角英数記号カタカナを全角に変換する。
上記で変換したデータのカタカナを平仮名に変換する。
ここまで変換したら、検索専用カラム AA に格納しておく。

※必要であれば、ギリシア文字やロシア文字の小文字大文字変換も。

検索にあたっては、キーワードを上記ルールで変換してから、カラム AA
に対して where 条件を使う。

114
NAME IS NULL[sage]   投稿日:2013/01/10 09:16:20  ID:???.net(521)
>109
オリジナルデータを入れとくカラム以外に英数を半角大文字とかに正規化して入れとくカラムを作って検索時はそれでやれば?

115
NAME IS NULL[sage]   投稿日:2013/01/10 12:23:53  ID:???.net(521)
やったことないけど、sqlite3_create_collation() 使って
比較関数登録して COLLATE 句ないし演算子使うってのは?

116
NAME IS NULL[sage]   投稿日:2013/01/11 10:25:12  ID:???.net(521)
WHERE UPPER('ABCdefgHIJKlmn') = 'ABCDEFGHIJKLMN'

117
NAME IS NULL[sage]   投稿日:2013/01/11 23:26:07  ID:???.net(521)
3.7.15.2

118
NAME IS NULL[sage]   投稿日:2013/01/14 06:23:33  ID:???.net(521)
sqlite って zerofill できます?

119
NAME IS NULL[sage]   投稿日:2013/01/14 23:31:22  ID:???.net(521)
なんで自分で試さないの?

120
NAME IS NULL[sage]   投稿日:2013/01/16 07:12:21  ID:???.net(521)
Oracle の LPAD や RPAD 関数みたいな機能のこと?

121
NAME IS NULL[sage]   投稿日:2013/01/21 04:30:51  ID:???.net(521)
さすがにSQLiteにquery_cache_sizeみたいなのはない?

122
NAME IS NULL[sage]   投稿日:2013/01/21 21:05:39  ID:???.net(521)
さすがにドキュメントは読んだんだよね?

123
NAME IS NULL[sage]   投稿日:2013/01/22 17:15:38  ID:???.net(521)
unionは500回までって制限があるんですね
unionで片っ端からつなげようという根性も正しくないんだろうけれど、
select結果は一回一回作業用のテーブルに全部突っ込むのがいいのかな
コメント1件

124
NAME IS NULL[sage]   投稿日:2013/01/22 19:06:50  ID:???.net(521)
>123
>unionで片っ端からつなげようという根性も正しくないんだろうけれど、
その通り。設計が悪すぎるので見直すべき。

125
NAME IS NULL[sage]   投稿日:2013/01/23 11:34:06  ID:???.net(521)
500って何か間違ってるw

126
NAME IS NULL[sage]   投稿日:2013/01/23 23:56:33  ID:???.net(521)
最新バージョンをCygwinでC++から利用しているんですが
CSVファイルから1行ずつよみこんで
PreparedStatementを使用してINSERTする処理なんですが
いくつかの行で最終カラムに入れた値だけ文字化けする現象が発生しています。
bindする際の値をデバッグして確認したのですが、その際は特に文字化け等も
しておらず(改行コード等の余計なコードも入っていませんでした)
INSERTをすると文字化けしています。

なぜか最終カラムにだけ発生します。
TABLE作成時に最終カラムにダミーの項目を追加してINSERTを行うと
文字化けは発生しませんでした。

調べているのですが、原因が分からず困っています。
どなかかお分かりになるでしょうか?

127
NAME IS NULL[]   投稿日:2013/01/24 00:05:14  ID:keellpin.net
そんな文章で分かるわけないだろ。ここはエスパー募集スレじゃないっす。

再現コード貼ったら誰かが答えてくれると思うよ。

128
NAME IS NULL[sage]   投稿日:2013/02/01 04:20:10  ID:???.net(521)
マルチコアCPUで使っても1コアだけ100%に張り付くだけでもったいない気がしたので
クエリを行うプログラムをマルチスレッドで走らせてみたら
複数のコアが代わる代わる100%になるだけで実行時間は全然変わらなかったと日記

129
NAME IS NULL[sage]   投稿日:2013/02/01 18:22:49  ID:???.net(521)
ここは君の日記帳ではありません
どうせプログラムの作りが悪いんだろ

130
NAME IS NULL[sage]   投稿日:2013/02/03 18:02:23  ID:???.net(521)
論文にしてどこかに投稿して

131
NAME IS NULL[sage]   投稿日:2013/02/03 20:38:35  ID:???.net(521)
リジェクトされますた

132
NAME IS NULL[]   投稿日:2013/02/05 16:01:47  ID:ABxdKMYQ.net(2)
おすすめのSQLitesqliteクライアントを教えてください。

PCでは
・Common SQL Environment
http://www.hi-ho.ne.jp/tsumiki/
を使ってるのですが、それほど高機能は求めていません。
てんぷれにないってことは、鉄板みたいなのはないのでしょうか?

目的
・SQL文の予習・復習 for Android2.3
条件
・無料
・SQLが発行できる
・結果がExcelのような表で表示される

使用中アプリの評価
・Start SQL
https://play.google.com/store/apps/details?id=dev.tarow.ss
○SQLの予約語KBがほしい
○公開プロバイダ(例えば電話帳)にアクセスしたい(その場合はInternetパーミッションなし)

133
NAME IS NULL[sage]   投稿日:2013/02/05 18:42:06  ID:???.net(521)
俺も前探したことあったけど、これといったのは見つからなかったな
aSQLiteManagerぐらいかな使い物になりそうだったのは
コメント1件

134
sage[]   投稿日:2013/02/05 21:43:57  ID:ABxdKMYQ.net(2)
>133
レスありがとうございます
aSQLiteManagerも使ってみました

あれは、タブレットだと綺麗にみれるのかな?
文字が小さすぎてファイルをタップしにくいのと、
たぶん型によって色分けされた表が目に痛くて
すぐアンインストールしてしまいました

なんか、中国製のも目にとまったけど、
パーミッションみてやめたw

無料で欲しいってのがあつかましいのですが
しばらくStart SQLで我慢して
ちょくちょくgoogle playをチェックします

AndroidでSQL打つ需要ってあまりないのかな

135
NAME IS NULL[sage]   投稿日:2013/02/05 22:33:19  ID:???.net(521)
まあ、ないよね。

136
NAME IS NULL[sage]   投稿日:2013/02/15 20:56:17  ID:???.net(521)
A5:SQL Mk-2 という開発ツールを使い始めたばかりなんですが、
起動すると何の設定をしなくても「ODBC/SQLite3 Database」というのが表示されます。

これは単に表示されるだけのものなんでしょうか?
それとも、設定やフォルダの設置でほかのSQLのように扱えるようになるんでしょうか?

137
NAME IS NULL[sage]   投稿日:2013/02/17 22:23:46  ID:???.net(521)
そのA5:SQL Mk-2とかいう開発ツールの作者に聞けば…?

138
NAME IS NULL[sage]   投稿日:2013/02/18 12:27:35  ID:???.net(521)
コントロールパネルか管理ツールでデータソース(ODBC)というのが
あるからそれで作ってやれば一応使えるよ。
ODBCの範囲内だけどな

139
NAME IS NULL[]   投稿日:2013/02/24 20:28:36  ID:zXyOLTMR.net
最近興味があってsqliteを調べてるんですが、
みんなはやはりスマホのアプリ開発の為に利用してるんですか?
ざっと調べたところだと、複数のユーザからの頻繁な更新を受けるようなwebアプリの利用は厳しいという
情報を見つけたんだけど、古い情報なのでいまはどうなってるのかわかりません

やっぱりそういう用途では利用しづらいんでしょうか
それともなにか解決策が見つかったりしたんでしょうか

140
NAME IS NULL[sage]   投稿日:2013/02/24 21:36:06  ID:???.net(521)
今はジャーナルモードかえれば結構余裕

141
NAME IS NULL[sage]   投稿日:2013/02/27 13:05:20  ID:???.net(521)
sqlite3ってMySQLみたいに

use データベース名

ってできないの?
代替コマンドある?

142
NAME IS NULL[sage]   投稿日:2013/02/27 13:43:59  ID:???.net(521)
コマンドラインの話ね?
基本的に1ファイル1DBだから必要ないっしょ?

ただ、一度に複数のDBをつなげて違うスキーマとして同時に使うっていうような
面白いことならできる

$ sqlite3 test1.db
sqlite> .databases
seq name file
--- --------------- ----------------------------------------------------------
0 main /home/hoge/test1.db

sqlite> attach 'test2.db' as 'sub';

sqlite> .databases
seq name file
--- --------------- ----------------------------------------------------------
0 main /home/hoge/test1.db
2 sub /home/hoge/test2.db


sqlite> create table main.table1 (id text primary key, val integer);
sqlite> create table sub.table1 (id text primary key, val integer);
(mainは省略可、テーブル名は被らなければ省略可)

sqlite> insert into table1 (id, val) values (0, 123);
sqlite> insert into sub.table1 (id, val) values (123, 456);

sqlite> select t2.id, t2.val from table1 t1, sub.table1 t2 where t1.val = t2.id;
123|456

見たいな。

143
NAME IS NULL[sage]   投稿日:2013/03/02 13:28:15  ID:???.net(521)
globとlikeってどう使い分けるんでしょうか?
globの方が高機能だが速度はシンプルなlikeに劣るって認識であってますか?

144
NAME IS NULL[sage]   投稿日:2013/03/03 11:46:23  ID:???.net(521)
LIKEは標準、GLOBはSQLite拡張、でいいんじゃね


145
NAME IS NULL[sage]   投稿日:2013/03/03 19:03:49  ID:???.net(521)
phpから使ってるんだけど
PRIMARY KEY AUTOINCREMENTが定義されてるindexフィールドがあるテーブルlogがあります。
そこにinsert into log DEFAULT VALUES;をした場合
その時に作られたindexの番号を取得するにはどうしたらいいの?

即order by desc limit 1しても、その時に作られたと保証はされないですし
(同じタイミングで別プロセスに作成されたのかも知れない)

146
NAME IS NULL[sage]   投稿日:2013/03/03 19:17:53  ID:???.net(521)
last_insert_rowid() とか使えばいんでね?

147
NAME IS NULL[sage]   投稿日:2013/03/03 22:36:59  ID:???.net(521)
補足すると、トランザクションありの状態で、だよね

148
NAME IS NULL[sage]   投稿日:2013/03/12 10:01:39  ID:???.net(521)
PHPでPDOで使ってるんですが、トランザクションを開始してコミットする前に
webページを遷移させたからかどうかはわかりませんが、データベースがロックしたままになってしまいました。

PHPからデータベースがロックしているか確認してロックを解除する方法はありますか?

ネットで検索しまくりましたが、
「ロックしてるファイルをコピペしたファイルをデータベースとして使えばロックは解除される」
というのしか見つかりませんでした。

149
NAME IS NULL[sage]   投稿日:2013/03/12 18:08:32  ID:???.net(521)
PDOで使ったこと無いから知らないけど、普通はロックしてるプロセスが終了すれば解放される。
ロックしたまま無限ループしてるとかじゃない限り、そのうち解放されるんじゃない?
コメント1件

150
148[sage]   投稿日:2013/03/12 20:44:41  ID:???.net(521)
>149

ループ処理はしてないです。
PC再起動してもそのファイルはロックされたままですね

151
NAME IS NULL[sage]   投稿日:2013/03/12 20:46:56  ID:???.net(521)
再起動してもロックって・・・
ロックファイルでも作ってるのかしら、もしくはなんかの間違い

152
NAME IS NULL[sage]   投稿日:2013/03/12 23:52:57  ID:???.net(521)
SQLite自体にロックファイルの概念はないぞ。
そもそも「データベースがロックされたままになった」というのは何を持って判断したの?

153
148[sage]   投稿日:2013/03/13 01:43:43  ID:???.net(521)
ロックされているファイルに対してトランザクションをかけて、executeすると
ロックされてるっていうエラーが出た。

とりあえずロックされたファイルをコピペしたファイルを今使ってるので問題はなくなったけど、
またいつこんなことが起こるのか心配…

154
148[sage]   投稿日:2013/03/13 01:53:29  ID:???.net(521)
このへんかな。
http://ja.softuses.com/28862
http://ult.riise.hiroshima-u.ac.jp/~nagato/?firefox

つまり firefox が起動中 lock しているこれらの sqlite ファイルが正常に解放される事無く、 firefox が落ちてしまった時に問題が発生するのではないかと。
(中略)

database is locked となる sqlite database file であるが、別の場所にコピーすると何事もなかったのように開くことができることに気付いた。

155
NAME IS NULL[sage]   投稿日:2013/03/13 18:43:14  ID:???.net(521)
ん、PDOの話じゃないの?

・OS、アーキテクチャ
・ファイルシステム
・使用法、再現コード

ぷりーず。

156
148[sage]   投稿日:2013/03/14 12:36:23  ID:???.net(521)
リンクは単にファイルがロックされた件に関する検索の情報です。
他にほとんどなかったので。

PDOかどうかって関係あるんですか…?

OSはwindows7
アーキテクチャとは?
ファイルシステムはNTFS
使用法はPHPでPDOでトランザクションしてプリペアでupdateをセットし、execute、コミットの順です。

コードは再現できるコード作れたらそれを載せます。

157
NAME IS NULL[sage]   投稿日:2013/03/14 12:46:18  ID:???.net(521)
アーキテクチャはIA(インテル)だろ
通常は fcntl でロックしてるようだから
ロック中に落ちたらコピーして仕切りなおし、でいいけど
Windowsはどうなんかな・・・

158
NAME IS NULL[sage]   投稿日:2013/03/14 18:29:01  ID:???.net(521)
原因を切り分けるためには情報が色々必要ってことでしょ。トラブル解析の基本。

例えばPDOでしか再現できない、とかだとするとPHPのSQLite用PDOドライバのバグなんて可能性もあるからね。
windowsだったら php_pdo_sqlite.dll ってやつ。phpはこのラッパーを経由してSQLiteのAPIを叩いてるわけ。

あとは(特にLinuxの)NFSはファイルロックまわりの実装が弱い、みたいなことがあったりして、
ファイルシステムによっては同様のことがあるかもしれないからファイルシステムの情報も必要、とか。

もちろんPHPスクリプト自体の作りが悪い可能性もあるから再現コードも必要。
>トランザクションしてプリペアでupdateをセットし、execute、コミット
とやってるつもりだったが、よく見たら違うこと書いてるとかね。

159
NAME IS NULL[sage]   投稿日:2013/03/15 13:01:49  ID:???.net(521)
unlocker入れておくと、ファイルがロックされてるときに、どのプロセスがそのファイルをロックしているか教えてくれる。
ロックされたプロセスからファイルを解放することもできる。
こういうプログラムがあるから、どのプロセスがロックしているのかをプログラムから知る方法はあるのだろうけど、
俺は知らない。

160
NAME IS NULL[sage]   投稿日:2013/03/20 23:58:09  ID:???.net(521)
3.7.16

161
NAME IS NULL[sage]   投稿日:2013/03/30 00:02:59  ID:???.net(521)
3.7.16.1

162
NAME IS NULL[sage]   投稿日:2013/04/12 22:54:29  ID:???.net(521)
3.7.16.2

163
NAME IS NULL[sage]   投稿日:2013/05/20 20:00:18  ID:???.net(521)

164
NAME IS NULL[sage]   投稿日:2013/05/20 22:39:47  ID:???.net(521)
AccessからODBC接続したんだけど、テーブルのデータを修正できません。なぜでしょうか?
コメント1件

165
NAME IS NULL[sage]   投稿日:2013/05/21 00:02:34  ID:???.net(521)

166
NAME IS NULL[sage]   投稿日:2013/06/05 18:39:43  ID:???.net(521)
累計計算するのはどうやるの?

167
NAME IS NULL[sage]   投稿日:2013/06/05 18:50:39  ID:???.net(521)
累計計算って?
窓関数使いたいとか?
それともsqlite3_total_changesのこと?
コメント1件

168
NAME IS NULL[sage]   投稿日:2013/06/05 19:04:13  ID:???.net(521)
>167
どうも済みません
学習の為に、PupSQLiteで出納帳作ってみたいのですが、残高が出来なくて困ってます
コメント1件

169
NAME IS NULL[sage]   投稿日:2013/06/05 19:42:26  ID:???.net(521)

170
NAME IS NULL[sage]   投稿日:2013/06/05 19:50:35  ID:???.net(521)
>169
有難う

171
NAME IS NULL[sage]   投稿日:2013/06/08 10:15:26  ID:???.net(521)
トランザクションの end と comitt の違いは何ですか?
コメント1件

172
NAME IS NULL[sage]   投稿日:2013/06/08 10:48:10  ID:???.net(521)

173
NAME IS NULL[sage]   投稿日:2013/06/08 12:00:53  ID:???.net(521)
>172
有難う解りました

174
NAME IS NULL[sage]   投稿日:2013/06/08 12:04:21  ID:???.net(521)
PupSQLiteで、下記がエラーになります
エラーメッセージ 【cannnot start a transaction within a transaction】

-------------------------
BEGIN;
UPDATE test SET [Name]="太郎" WHERE [ID]=2;
END;
--------------------------

2行目を UPDATEでなく SELECT文にすると正しく実行されます

何が原因でしょうか?
コメント3件

175
NAME IS NULL[sage]   投稿日:2013/06/08 12:07:33  ID:???.net(521)
そのエラーメッセージに原因が書いてあるみたいだけど…

176
NAME IS NULL[sage]   投稿日:2013/06/08 12:13:32  ID:???.net(521)
もう少し詳しく教えて頂けませんでしょうか?
100万レコードのUPDATEをするのですが、SQLiteはトランザクションで挟まないと遅いと見聞きしたので、試しに1レコードでやってみたらエラーがでました

どうすれば目的が叶えられますでしょうか?
コメント3件

177
NAME IS NULL[sage]   投稿日:2013/06/08 12:26:31  ID:???.net(521)
>176
>174
>エラーメッセージ 【cannnot start a transaction within a transaction】
> 【cannnot start a transaction within a transaction】
>cannnot start a transaction within a transaction

c a n n n o t s t a r t a t r a n s a c t i o n w i t h i n a t r a n s a c t i o n

178
NAME IS NULL[sage]   投稿日:2013/06/08 12:34:32  ID:???.net(521)
もう少し詳しく教えて頂けませんでしょうか?
どうすれば目的が叶えられますでしょうか?

179
NAME IS NULL[sage]   投稿日:2013/06/08 12:49:41  ID:???.net(521)
>176
まずはメッセージの意味がわかるかどうか
そこからだ

180
NAME IS NULL[sage]   投稿日:2013/06/08 13:04:31  ID:???.net(521)
意味は解ります

遅くないように明示的にトランザクションを掛けてUPDATEをするにはどうしたら良いでしょうか?
宜しくお願いします
コメント1件

181
NAME IS NULL[sage]   投稿日:2013/06/08 13:29:28  ID:???.net(521)
>180
このUPDATEクエリは
既に別のトランザクションの中で動いているのだから
改めてトランザクションを作る必要はないのでは?
コメント1件

182
NAME IS NULL[sage]   投稿日:2013/06/08 13:46:46  ID:???.net(521)
>181
有難うございます

> 既に別のトランザクション
これは、SQLiteがオートで行ってるトランザクションでしょうか?
それだと遅いと見聞きしていたものです

それともPupSQLiteが親切に勝手に行っているものでしょうか?

どちらと思われますでしょうか、ご意見をお聞かせくださいませ
コメント2件

183
NAME IS NULL[sage]   投稿日:2013/06/08 15:22:23  ID:???.net(521)
>182
暗黙のトランザクションはBEGINを明示せずに
UPDATEなどをした場合に行われるから
この件には関係ないだろう
他にどこかでトランザクション開始を指示していて
それを終わらせていないとしか考えられないよ
コメント1件

184
NAME IS NULL[sage]   投稿日:2013/06/08 15:23:47  ID:???.net(521)
>182
まず前提として、

1. SQLite(だけじゃないけど、auto commitがあるRDBMS)では明示的にトランザクションを開始せずに
  更新系のSQLを発行すると、自動的にその文の前後でbegin、commit相当の処理が動く。

2. そしてSQLiteの場合、サーバを持たないため、トランザクションが完了していると言うことは、
  HDD上のsqliteファイルに完全にデータが書き込まれていることを保証しなければいけない。

3. SQLiteがHDDへのデータの書き込みを完全に保証するためには、HDDのプラッタが2回転するのを待つ必要がある。
  一般的な7200rpmのHDDは1分に7200回転=1秒に120回転なので、1秒につき60回のトランザクションが限界(※)。
  ( 出典: http://www.sqlite.org/faq.html#q19 )
  ※実際にはデータの書き込みも行うので、それよりも少ないはず。

つまり、明示的にトランザクションを開始せずにUPDATE文を大量に発行すると、一回UPDATEするごとに
HDDへの書き込みを保証する必要が出る=HDD速度に引っ張られる、というのが、>176がどこかで見聞きした
「SQLiteはトランザクションで挟まないと遅い」という怪しい話の正体。
# 余談だけど、そんなわけで同じSQLiteでもインメモリDBだと、そういうことにはならない。SSDとかでも大丈夫なんじゃないかな…?

その上で。

>174のSQL文を見ると、BEGIN文をロック種別の指定なしで発行している。
ドキュメント(>1)を見ると、指定無しの規定値はBEGIN DEFERREDだと書いてある。

SELECT文に変えると実行される理由はDEFERREDのドキュメントを参照してもらうとして、
UPDATEした時にエラーになった理由は>174のエラーメッセージ通りなので、
考えられる原因としては、その3行の前に手動でbegin文を打っているけど忘れているか、
そのPupSQLiteとかいうツールが変なことをしているか。後者ならツールの作者に聞かないと分からん。
コメント1件

185
NAME IS NULL[sage]   投稿日:2013/06/08 15:38:27  ID:???.net(521)
>183
>184
> そのPupSQLiteとかいうツールが変なことをしているか。後者ならツールの作者に聞かないと分からん。

説明良く解りました
有難うございます

186
NAME IS NULL[sage]   投稿日:2013/06/08 19:42:57  ID:???.net(521)
そういう、よくわからないときは、本家のsqlite3.exeでSQL文を実行してみるのも手よ。

187
NAME IS NULL[]   投稿日:2013/06/14 05:21:43  ID:i47DmT1C.net
iosやandroidアプリで、ドラッグ&ドロップでリストのレコードを入れ替えたタイミングで、テーブルに更新をかけ並び順を記憶させたいのですが、何かいい方法はないものでしょうか。
単純にリスト順にすべてのレコードに対してUPDATEをかけるのでは、件数が増えた場合コストがかかりすぎてしまいます。
コメント3件

188
NAME IS NULL[sage]   投稿日:2013/06/14 06:22:18  ID:???.net(521)
>187
諦めろ
処理コストが問題となるような大量データの
更新を携帯端末にさせること自体に無理がある

189
NAME IS NULL[sage]   投稿日:2013/06/14 18:26:23  ID:???.net(521)
入れ替えた時はメモリ上で順番を記憶して
ビューを閉じたりする時にデータベースを書き換える

190
NAME IS NULL[sage]   投稿日:2013/06/15 16:24:54  ID:???.net(521)
>187
完全な解決にはならないけど、並び順を連番にせず適度に空きを設けるとか。
…昔のBASIC言語思い出すな。

191
NAME IS NULL[sage]   投稿日:2013/06/15 18:26:19  ID:???.net(521)
>187
一画面以上ドラッグするケースを捨てて、順序を数字で持てば
アップデート件数の最大値は表示件数になる。

192
NAME IS NULL[sage]   投稿日:2013/06/15 23:56:42  ID:???.net(521)
並び順(と元のテーブルへの外部キー)だけを保持するテーブルを別に作ればよいと思う。
参照するときはjoinしてorder by
コメント1件

193
NAME IS NULL[sage]   投稿日:2013/06/16 03:46:48  ID:???.net(521)
>192
それで何が解決するのかわからない

194
NAME IS NULL[sage]   投稿日:2013/06/16 14:07:21  ID:???.net(521)
SQL Server Compact 4.0 と比べてどっちが良い?

195
NAME IS NULL[sage]   投稿日:2013/06/16 14:34:01  ID:???.net(521)
名前からしてCEに組み込めるかと思ったけど、そういうわけでもないみたいだなw
CE用にSQLiteのソース組み込んで使ってる・・・

ちょっと使ってみようかな

196
NAME IS NULL[]   投稿日:2013/06/18 08:48:33  ID:bfvLnN3q.net
Winアプリで2つExeがある場合とかは、同時に接続できるのでしょうか?
片方がトランザクション開始したらコミットするまで、
もう片方がトランザクション開始出来ない、といった程度の問題でしょうか?
コメント1件

197
NAME IS NULL[sage]   投稿日:2013/06/18 19:09:59  ID:???.net(521)
自分で試すことも出来ないの?


198
NAME IS NULL[sage]   投稿日:2013/06/18 19:49:50  ID:???.net(521)
インスタンス別じゃん

199
NAME IS NULL[sage]   投稿日:2013/06/19 00:00:22  ID:???.net(521)
>196
Journal_modeで挙動変えられるからそれぞれ試してみて使い方にマッチするのを見つけろ

200
NAME IS NULL[]   投稿日:2013/07/17 00:00:00  ID:KY/vvdPC.net
拡張モジュールで、任意フォルダ内のファイル名、サイズ、タイムスタンプとかをテーブルのように参照出来るもの、ないですかねえ
コメント1件

201
NAME IS NULL[sage]   投稿日:2013/07/19 00:00:00  ID:???.net(521)
その説明じゃどんな仕様を想定しているのか分からん。

202
NAME IS NULL[sage]   投稿日:2013/07/19 00:00:00  ID:???.net(521)
SELECT path FROM C:\ WHERE size >= 1000000
みたいなことをしたいってことじゃないかと想像
コメント1件

203
NAME IS NULL[sage]   投稿日:2013/07/19 00:00:00  ID:???.net(521)
PowerShellにそんな感じのなかったっけ

204
NAME IS NULL[sage]   投稿日:2013/07/20 00:00:00  ID:???.net(521)
ディレクトリを走査して一覧表を作成している間にそのディレクトリの内容が
変わっちゃう場合があるし、それを止める手段もちょっと思いつかない。
こういうの、データベースの一機能として提供した場合に、なんか対処が面倒な
クレームとか来そう。
コメント1件

205
NAME IS NULL[sage]   投稿日:2013/07/21 00:00:00  ID:???.net(521)
>200 ですが、やりたいのは>202の通りです

VIRTUAL TABLEを自作してそれらしい物が出来ました。
公式リポジトリに最近外部モジュールのサンプルが沢山追加されていたのでそれベースに改造して。
>204は考慮してない…

206
NAME IS NULL[sage]   投稿日:2013/07/21 00:00:00  ID:???.net(521)
PowerShellで良いじゃん

207
NAME IS NULL[sage]   投稿日:2013/07/21 00:00:00  ID:???.net(521)
sqliteのスレでその回答に何の意味が有るのかと

208
NAME IS NULL[sage]   投稿日:2013/08/15 00:00:00  ID:???.net(521)
System.Data.SQLite をVBAから直接(ADOではなく)使えますか?

209
NAME IS NULL[sage]   投稿日:2013/08/15 00:00:00  ID:???.net(521)
ホームページによればSystem.Data.SQLite is an ADO.NET adapter for SQLite。
そもそもADOじゃなくてADO.NET。"直接"が何を差すのかも分からず、
質問が理解できなかったので、熟考の上、再投稿をお願いします。

210
NAME IS NULL[sage]   投稿日:2013/08/15 00:00:00  ID:???.net(521)
知らんクセに偉そうに答えるなよw

211
NAME IS NULL[sage]   投稿日:2013/08/15 00:00:00  ID:???.net(521)
.netのdllもVBSやVBAから直接参照できるように書いてあるのも結構あるでしょ
暗号化やテキスト操作なんか

212
NAME IS NULL[sage]   投稿日:2013/08/16 00:00:00  ID:???.net(521)
やってみたけど参照できないよ

213
NAME IS NULL[sage]   投稿日:2013/08/18 00:00:00  ID:???.net(521)
どうやった?
もしかして別のものみてるかな?

214
NAME IS NULL[sage]   投稿日:2013/08/19 00:00:00  ID:???.net(521)
AccessのABEで参照設定して

Dim testDB
With System.Data.SQLite
set testDB=.createDatabase("SQLitetest.sq3")
.createTable testDB , "testTable"
end with
コメント1件

215
NAME IS NULL[sage]   投稿日:2013/08/27 00:00:00  ID:???.net(521)
3.8.0

216
NAME IS NULL[sage]   投稿日:2013/08/27 00:00:00  ID:???.net(521)
>214
アベってVBEのつもりか

217
NAME IS NULL[sage]   投稿日:2013/08/27 00:00:00  ID:???.net(521)
mysqlのorder by fieldみたく、指定した順番にselectする方法はありませんか?

・テーブル例
mytable.myid
----------
1
2
3
4
5
・SQL例
select myid from mytable order by field myid(1,4,5,2,3);
・取得したいデータ
1,4,5,2,3の順番で取得できるように

218
NAME IS NULL[sage]   投稿日:2013/08/27 00:00:00  ID:???.net(521)
select myid from mytable order by case myid when 1 then 0 when 4 then 1 when 5 then 2 when 2 then 3 when 3 then 5 end;

長いけど…。偉い人ならもっとスマートにできるかもしれん。

219
NAME IS NULL[sage]   投稿日:2013/08/28 00:00:00  ID:???.net(521)
order by caseなんて初めて知りました。
ありがとうございます。

220
NAME IS NULL[sage]   投稿日:2013/08/29 00:00:00  ID:???.net(521)
●のログをひもづけるためにhttp://pastebin.com/pkEWvP2h
というスキーマをsqlite3で作ってデータをロードしてみましたが、
思ったようなスピードが出ません。どうすれば速くなりますか?

問い合わせは↓
SELECT DISTINCT s.email FROM res AS r
INNER JOIN thread AS t ON r.thread = t.rowid
INNER JOIN session AS s ON r.sess = s.rowid
WHERE t.board = '板名';

221
NAME IS NULL[sage]   投稿日:2013/08/30 00:00:00  ID:???.net(521)
index作れよ

222
sage[sage]   投稿日:2013/08/30 00:00:00  ID:???.net(521)
すんませんCentOS5.9で、php-5.1.6からsqlite-3.3.6を使いたく、
yumでphp-pdoをインストールしたのですが、
Call to undefined function sqlite_open() となって使用できません。
phpinfo()ではpdoとpdo_sqliteが追加されているのですが、他に見るところありますでしょうか。
コメント1件

223
NAME IS NULL[sage]   投稿日:2013/08/31 00:00:00  ID:???.net(521)
windowsでsqliteデータベース開きたい時ってどんなソフト使ってる?
pupsqliteが異常終了多すぎて乗り換えたい
コメント1件

224
NAME IS NULL[sage]   投稿日:2013/08/31 00:00:00  ID:???.net(521)
>222
そもそもsqlite3.soが入ってないとか

>223
多すぎってほどか分からないけど、確かに時々落ちるね
なかなか、これぞってソフトがない…

225
NAME IS NULL[sage]   投稿日:2013/08/31 00:00:00  ID:???.net(521)
NaviCat

226
NAME IS NULL[sage]   投稿日:2013/08/31 00:00:00  ID:???.net(521)
SQLiteSpy使うか、コマンドラインからsqlite3で操作するかだな

227
NAME IS NULL[sage]   投稿日:2013/09/09 23:20:54  ID:???.net(521)
俺はいろいろ試した結果あれ一択だわ
あれ、何だったっけか、えーとちょっと待ってて

228
NAME IS NULL[sage]   投稿日:2013/09/09 23:58:17  ID:???.net(521)
早くしろボケ

229
NAME IS NULL[]   投稿日:2013/09/10 15:10:11  ID:mn2EqLZS.net
PostgreSQL 9.3.0

230
NAME IS NULL[sage]   投稿日:2013/09/14 00:05:38  ID:???.net(521)

231
NAME IS NULL[sage]   投稿日:2013/09/14 06:46:30  ID:???.net(521)
思いだした。
SQLite Expert
http://www.sqliteexpert.com
excel exportとか使わなければ無料版でも十分

navicatは高いし昔から好きじゃないんだよなー

232
NAME IS NULL[sage]   投稿日:2013/09/14 08:34:17  ID:???.net(521)
遅せーんだよボケ、もうNaviCat買っちゃったよ

233
NAME IS NULL[sage]   投稿日:2013/09/15 14:05:28  ID:???.net(521)
すまんのう、俺にも生活有るもんで

234
NAME IS NULL[sage]   投稿日:2013/09/19 04:36:24  ID:???.net(521)
チラ裏だけど
sqlite公式のドキュメントって実に良くまとまってるというか、読んでて関心するというか、尊敬さえする。

知りたい情報は探せばちゃんと載ってるし、それで居て機械的な説明に終始してない。読んでて疑問が浮かんだらその答えが次の行に載ってる。
ユーモア的な表現が所々出てくるのも面白い。
暇な時に用も無いのに読んじゃうくらい。

不満はSQL構文図から説明へのリンクが無いことぐらいかな

235
NAME IS NULL[sage]   投稿日:2013/09/22 18:21:34  ID:???.net(521)
MIPS の H/PC2000で使えるSQLlite 落ちてませんか

236
NAME IS NULL[sage]   投稿日:2013/09/23 05:49:51  ID:???.net(521)
ソースは落ちてるのでコンパイルしましょう

237
NAME IS NULL[sage]   投稿日:2013/10/01 23:29:16  ID:???.net(521)
INTEGERで作成したカラムに試しに文字列を入れてみたら普通に入りました
なんかALTER的なことをしないとだめなのでしょうか?

238
NAME IS NULL[sage]   投稿日:2013/10/02 02:08:06  ID:???.net(521)
型の概念は有りません。
詳しくはggって。

239
NAME IS NULL[sage]   投稿日:2013/10/02 02:44:07  ID:???.net(521)
ありがとう。
プログラム側で制御することにします。

240
NAME IS NULL[sage]   投稿日:2013/10/05 09:47:56  ID:???.net(521)
数字や文字を区別していないのは
分かりましたが、
取り出した時に、文字なのか数字なのか、実体の型がはっきりしないのは
本当に困ります
文字数字判別の備え付け関数とかないのでしょうか
コメント3件

241
NAME IS NULL[sage]   投稿日:2013/10/05 14:10:44  ID:???.net(521)
>240
insert,updateする前にチェックして入れろ

242
NAME IS NULL[sage]   投稿日:2013/10/06 12:12:41  ID:???.net(521)
>240
そのカラムは、文字や数字を混在してもいいものであるような設計しているんでしょ?
だったら、取得後、プログラムで制御しなさい。

そうでなければ、型識別用のカラムを用意するとか検討すれば良い。

243
NAME IS NULL[sage]   投稿日:2013/10/06 17:49:56  ID:???.net(521)
>240
select typeof(1), typeof(0.0), typeof('string'), typeof(null);

244
NAME IS NULL[sage]   投稿日:2013/10/14 00:53:56  ID:???.net(521)
ユニコードのCSVもしくはmdbかaccdbで書き出せるフリーソフトってありますか?

245
NAME IS NULL[sage]   投稿日:2013/10/14 12:29:43  ID:???.net(521)
探すより作った方が早いかもよ

246
NAME IS NULL[sage]   投稿日:2013/10/14 22:29:07  ID:???.net(521)
やっぱり作ったほうが手っ取り早いですか…
ありがとうございました。

247
NAME IS NULL[sage]   投稿日:2013/10/17 23:59:37  ID:???.net(521)

248
NAME IS NULL[sage]   投稿日:2013/10/22 23:54:28  ID:???.net(521)
>247
unlikely(X) 関数追加
Bool型の値Xが6.25%という低確率でしかtrueにならないことを最適化のためにクエリに埋め込んでコアに教える…か

6.25%という数値にはどんな深遠な意味があるのだろうか?
任意の確率を指定出来るlikelihood関数も追加されたとはいえ。

249
NAME IS NULL[]   投稿日:2013/10/28 10:12:41  ID:BsA/BDpa.net
テーブル「table1」が存在していたらその内容を「table2」へコピーする

みたいなSQLはどうやって書けばいいですか?
コメント1件

250
NAME IS NULL[sage]   投稿日:2013/10/28 11:27:23  ID:???.net(521)
いきなりコピーして、エラー処理をちゃんとする

テーブルの存在をチェックする構文があったとしても、
それやっちゃうとコピー時にエラーが発生するケースのテストが
難しくなるのでよろしくない

251
NAME IS NULL[sage]   投稿日:2013/10/29 08:09:54  ID:???.net(521)
>249
insert 〜 select 〜
とか
create table 〜 as select 〜

252
NAME IS NULL[sage]   投稿日:2013/10/29 08:11:26  ID:???.net(521)
あぁ勘違いしたスマン無視して下さい
mysqlみたいなif exist的なことか

253
NAME IS NULL[sage]   投稿日:2013/10/29 10:18:26  ID:???.net(521)
スキーマのコピーもいるべ

254
NAME IS NULL[sage]   投稿日:2013/10/29 11:48:05  ID:???.net(521)
質問です
SQLite 3.7で作成したデータベースを
3.3で読んだり書き込んだりすることは通常問題なくできるものでしょうか?

255
NAME IS NULL[sage]   投稿日:2013/10/29 12:09:37  ID:???.net(521)
3系は同じはず。
変わったら4になるんじゃないかな。
コメント1件

256
NAME IS NULL[sage]   投稿日:2013/11/01 09:20:22  ID:???.net(521)
>255
無事解決できました ありがとう

257
NAME IS NULL[sage]   投稿日:2013/11/04 13:19:03  ID:???.net(521)
初歩的な質問です
コマンドラインで複数行での入力中に、キャンセルする方法ってあるのでしょうか?

258
NAME IS NULL[sage]   投稿日:2013/11/04 13:27:47  ID:???.net(521)
俺はいつも適当な文字打ってエラー出して終了させる
コメント1件

259
NAME IS NULL[sage]   投稿日:2013/11/04 13:49:22  ID:???.net(521)
^Dで丸ごと終わらせる、、とか

260
NAME IS NULL[sage]   投稿日:2013/11/04 21:24:48  ID:???.net(521)
>258
どうも。それしかないですか。

261
NAME IS NULL[sage]   投稿日:2013/11/08 01:29:40  ID:???.net(521)
sqliteでcteとwindow関数使えたらもう死んでもいい
のらないかな

262
NAME IS NULL[sage]   投稿日:2013/11/12 13:02:35  ID:???.net(521)
半角の濁点付き文字を検索するにはどうすればいいのでしょう?

like ”%[だダ(ダ)]%”
こんな感じでタ+”を一文字として扱いたいんですが、何で囲めばいいんでしょう。

263
NAME IS NULL[sage]   投稿日:2013/11/12 14:33:46  ID:???.net(521)
正規表現使えるのか
文字列入れるのは無理じゃね
[だダ]|ダ
とか、、

264
NAME IS NULL[sage]   投稿日:2013/11/12 22:23:16  ID:???.net(521)
プログラムがごちゃごちゃして後々面倒くさいことになりそうなので妥協してしまった、、、


265
NAME IS NULL[sage]   投稿日:2013/11/15 03:36:20  ID:???.net(521)
SQLigtの初心者で、まだネットで調べながら作ってるレベルです。
で質問なんですが
table1
id|year|month|day|・・・
というテーブルと
table2
id|year|month|day|・・・
の二つのテーブルがあるのですが
yearとmonthとdayが同一である時のみ、色々処理をしたいのですが
SQL文をどう書いたらよいかわかりません。
初心者の質問ですみませんが、ご教示願います。

266
NAME IS NULL[sage]   投稿日:2013/11/15 05:07:16  ID:???.net(521)
お前はsqliteの初心者じゃなくて
データベースの初心者だな

267
265[sage]   投稿日:2013/11/15 08:32:56  ID:???.net(521)
はい、現在androidアプリの製作をしてまして
DBを使うことになりSQLightを触り始めた感じです。

268
NAME IS NULL[sage]   投稿日:2013/11/15 20:22:32  ID:???.net(521)
SQLの初心者向けサイトや本は腐るほどあるだろ
なぜそれを見ない?

269
NAME IS NULL[sage]   投稿日:2013/11/16 02:11:06  ID:???.net(521)
sqliteどうのではなく、基本的なsqlのお勉強が必要だね

270
NAME IS NULL[sage]   投稿日:2013/11/16 08:34:46  ID:???.net(521)
> SQLigtの初心者
> SQLightを触り始めた

すれ違いだな

271
NAME IS NULL[]   投稿日:2013/11/24 17:04:52  ID:fFOXkp70.net
作成済みのテーブル my_table にて
カラム column_a の存在確認のみやりたいです。
(ALTER TABLE IF NOT EXITS ... とかではなく、存在確認のみです)
(実際には、「存在しないこと」を確認したいです)

色々とググる中で以下の2つの方法が見つかっていますが
どちらもスマートではないなぁと感じています。

 ・PRAGMA index_info(my_table) でテーブル情報を取得して、
  その中に column_a が存在しないことをループを廻して全件チェックする

 ・SELECT column_a FROM my_table で例外が発生したら、存在しないとする

もっと直接的にカラムの存在確認はできないのでしょうか?
方法がありましたらご教授いただきたく、よろしくお願いします。
コメント1件

272
NAME IS NULL[sage]   投稿日:2013/11/24 20:48:48  ID:???.net(521)
千葉県松戸市六高台2-78-3

273
NAME IS NULL[sage]   投稿日:2013/11/24 22:14:44  ID:???.net(521)
>271
select sql from sqlite_master where type='table' and name='my_table';
で、定義とってきて、中身見ればいいんじゃね?

274
NAME IS NULL[]   投稿日:2013/11/25 21:16:23  ID:falVPg2c.net
重複している行の削除をしたいのですが、
どう書けばよいのか思いつきません。
残すのは_IDが一番若いものにしたいです。

_ID  |  Name  |  Data
−−−−−−−−−−−−−−
0   |  AAA   |  ABC
1   |  AAA   |  DCD
2   |  BBB   |  XXX
3   |  AAA   |  YYY
4   |  BBB   |  ZZZ

の場合は、

0   |  AAA   |  ABC
2   |  BBB   |  XXX

を残して、それ以外のレコードを削除したいです。
よろしくお願いいたします。
コメント1件

275
NAME IS NULL[sage]   投稿日:2013/11/25 22:31:27  ID:???.net(521)
>274
スレ違いだけど特別に。

delete from tbl where _ID not in ( select min (_ID) from tbl group by Name );

以後はこちらへ。

   SQL質疑応答スレ 14問目
コメント1件

276
274[sage]   投稿日:2013/11/25 22:56:51  ID:???.net(521)
>275
ありがとうございます。
スレ違いでしたか、大変失礼いたしました。

SQLを自分で書くのがSQLiteが初めてでしたので
どこまでがSQL全般の話なのか理解せずに
使っておりました。もっと勉強いたします。

277
NAME IS NULL[sage]   投稿日:2013/11/26 07:15:46  ID:???.net(521)
いい子だ

278
NAME IS NULL[]   投稿日:2013/12/02 10:24:15  ID:g8Y2dRce.net
sqliteに3DCGのデータを埋め込みたいのですが…

279
NAME IS NULL[sage]   投稿日:2013/12/02 16:09:08  ID:???.net(521)
バイナリデータならBLOBでも使うヨロシ

280
NAME IS NULL[sage]   投稿日:2013/12/02 17:53:36  ID:???.net(521)
base64エンコードして文字列型でもいい

281
NAME IS NULL[sage]   投稿日:2013/12/04 20:22:33  ID:???.net(521)
ts

282
NAME IS NULL[sage]   投稿日:2013/12/06 09:00:08  ID:???.net(521)
VBAからデータ追加するのにRecordsetでAddNewで入れるのと
InsertIntoで入れるのとどっちが速い?
コメント1件

283
NAME IS NULL[sage]   投稿日:2013/12/06 11:34:30  ID:???.net(521)
自分で試せや、ボケが

284
NAME IS NULL[sage]   投稿日:2013/12/07 00:56:02  ID:???.net(521)
C#でクラスからクエリを自動作成してくれるライブラリとかってないですかね

285
NAME IS NULL[sage]   投稿日:2013/12/07 02:47:58  ID:???.net(521)
3.8.2

286
NAME IS NULL[sage]   投稿日:2013/12/12 16:02:49  ID:???.net(521)
>282
後者の方が倍ほど速かったお

287
NAME IS NULL[sage]   投稿日:2013/12/12 16:07:36  ID:???.net(521)
ODBCドライバ経由でプリコンパイルって使える?

288
NAME IS NULL[sage]   投稿日:2013/12/12 19:10:28  ID:???.net(521)
ODBCドライバは知らないけど、少なくともSQLiteに「プリコンパイル」なる機能は無いよ。

289
NAME IS NULL[sage]   投稿日:2013/12/12 20:23:38  ID:???.net(521)
プリペアの事?

290
NAME IS NULL[sage]   投稿日:2013/12/13 23:09:13  ID:???.net(521)
違うらしい…。

291
NAME IS NULL[sage]   投稿日:2013/12/14 17:07:26  ID:???.net(521)
http://d.hatena.ne.jp/mftech/20100929/1285754844

>/// <summary>
>/// SQL文を実行し、検索結果の第1行第1列を返す
>/// </summary>

> public Object ExecuteScalar(string sql, SQLiteParameter[] parameters)

は、原文
http://zhoufoxcn.blog.51cto.com/792419/292670
では

> public Object ExecuteScalar(string sql, IList<SQLiteParameter> parameters)
> {
> using (SQLiteConnection connection = new SQLiteConnection(connectionString))
> {
> using (SQLiteCommand command = new SQLiteCommand(sql, connection))
> {
> if (!(parameters == null || parameters.Count == 0))
> {
> foreach (SQLiteParameter parameter in parameters)
> {
> command.Parameters.Add(parameter);
> }
> }
> return command.ExecuteScalar();
> }
> }
> }
で、
>(注:上面的代&#30721;在2011-07-15日代&#30721;重新&#32534;&#36753;了,参数由SQLiteParameter[] parameters&#21464;&#20026;IList<SQLiteParameter> >parameters,使用范&#22260;更广)

とのこと

292
NAME IS NULL[sage]   投稿日:2013/12/15 03:42:50  ID:???.net(521)
何言ってるか分からない

293
NAME IS NULL[sage]   投稿日:2014/01/08 08:46:17  ID:???.net(521)
EnumerableRowCollection<DataRow> query =
from row in contacts.AsEnumerable()
where IsContainArr(row[0].ToString(), fig)
select row;

bool IsContainArr(string s, string[] arr)
{
foreach (var a in arr)
{
if (!s.Contains(a)) return false;
}
return true;
}

って、メソッドで用意されてないんかな

294
NAME IS NULL[sage]   投稿日:2014/01/08 08:51:31  ID:???.net(521)
誤爆すまん

295
NAME IS NULL[sage]   投稿日:2014/01/11 15:42:52  ID:???.net(521)
いつもmysqlを使っていて、
sqliteを勉強中なのですが。

MySQLの以下のクエリについてなんですが、

INSERT INTO
table
(a, b)
VALUES
(aa, 1), (bb, 2), (cc, 3)
ON DUPLICATE KEY UPDATE b=b+VALUES(b)

同一行が存在しないときは、新しい行をinsert。
存在するときは、既存のbに新しい数値を足した値を入れる。
なお、複数の行を一括で処理したい。

以上の条件で、SQLiteでは同じことをするクエリは書けませんか?

296
NAME IS NULL[sage]   投稿日:2014/01/11 19:25:15  ID:???.net(521)
一括で同じことをするクエリはないみたいですが、
一応自己解決しました。では。

297
NAME IS NULL[sage]   投稿日:2014/01/13 15:41:14  ID:???.net(521)
自分のことしか考えてない・・・

298
NAME IS NULL[sage]   投稿日:2014/01/13 23:03:34  ID:???.net(521)
だってゆとりだもの。

299
NAME IS NULL[sage]   投稿日:2014/01/13 23:09:14  ID:???.net(521)
義務教育はぜーんぶ糞

300
NAME IS NULL[sage]   投稿日:2014/01/15 22:19:08  ID:???.net(521)
/// <summary>
/// NonQueryList
/// </summary>
/// <param name="sql"></param>
/// <param name="param_arr"></param>
/// <param name="list"></param>
/// <returns></returns>
public static int NonQueryList(string sql, string[] param_arr, List<string[]> list)
{
int records = 0;
try
{
List<SQLiteParameter> parameters = new List<SQLiteParameter>();
using (SQLiteConnection connection = new SQLiteConnection("Data Source=" + DB_FILE))
{
connection.Open();
using (DbTransaction transaction = connection.BeginTransaction())
{
using (SQLiteCommand command = new SQLiteCommand(connection))
{
foreach (string[] line in list)
{
command.CommandText = sql;
for (var i = 0; i < param_arr.Length; i++)
{
command.Parameters.Add(new SQLiteParameter(param_arr[i], line[i] ?? ""));
}

records += command.ExecuteNonQuery();
}
}
transaction.Commit();
}
}
}
catch (System.Exception ex)
{
Console.WriteLine(ex.Message);
return 0;
}
return records;
}

301
NAME IS NULL[]   投稿日:2014/01/18 00:46:11  ID:3tf2egSa.net
カラムにDateTime型を指定出来るけど
実際は、日付入れるとRealかIntegerかTextが入るよね
エポック秒使うとして最初からInteger指定しとくのと何が変わるの?
コメント1件

302
NAME IS NULL[sage]   投稿日:2014/01/22 21:15:47  ID:???.net(521)
>301
>1 → Syntax → date and time functions

303
NAME IS NULL[]   投稿日:2014/01/29 22:35:04  ID:gj57qZ83.net
株価のDBを1ファイルに収めて使ってきたけど1GB超えてるし
これを銘柄数だけファイルを作っても良いのではと思うようになった

db.open&closeするオーバーヘッドって結構大きいのかな?
分ける事でカラムとIndexを減らせるので1ファイルで見ると速度も上がって容量も減るけど
open&closeが4000回近く増えるから、ここで遅くなると意味ないし

他のプログラム見てると結構分けてるんだよね、4000個も無いけど
どう思いますか?
コメント1件

304
NAME IS NULL[sage]   投稿日:2014/01/29 23:25:07  ID:???.net(521)
コネクションプールで良いみたい、ではでは

305
NAME IS NULL[sage]   投稿日:2014/01/30 12:31:35  ID:???.net(521)
同じでDBを再利用するならそれ
串刺しはアタッチ

306
NAME IS NULL[sage]   投稿日:2014/02/02 00:41:43  ID:???.net(521)
データベースを勉強してみようと思ってます。
少し変な質問ですが、SQLiteはサーバーを必要とせず、
ローカル環境で導入できるということですが、
それならば、MS-Accessと、どう違うのか、いや全然違うのは判るんだけど。
二つを対比して、特徴があれば教えてください。
コメント2件

307
NAME IS NULL[sage]   投稿日:2014/02/02 07:34:40  ID:???.net(521)
まず病院へいきましょうね

308
NAME IS NULL[sage]   投稿日:2014/02/02 09:13:21  ID:???.net(521)
>306
> 少し変な質問ですが、SQLiteはサーバーを必要とせず、

と、言う仕組みは同じだよ。
個々の機能とか、Access は DBMS 以外の機能 (フォームとか) があるからそういうところは違うけど、漫然と特徴とか言われても説明しづらい。

309
NAME IS NULL[sage]   投稿日:2014/02/02 12:26:30  ID:???.net(521)
>306
SQLiteは、一般的なSQLを扱うRDB入門(ex.情報処理試験)としては、まったく向いていない。

結局のところ、サーバ型のDBMSから始めるのが、仕組みを理解するには一番良かったりする。

310
NAME IS NULL[sage]   投稿日:2014/02/02 12:34:09  ID:???.net(521)
Access は、
データベースエンジンACE + VBA + フォーム + レポート

311
NAME IS NULL[sage]   投稿日:2014/02/02 23:51:02  ID:???.net(521)
データベースの何を知りたいんだ
sqliteは少なくともデータベースを知ってる人用のプロダクトだと思うぞ

巷のデータベース入門書でも買って、
ポスグレでもMariaDBでもfirebirdでもいいから普通のRDB入れなさい。
全部ローカルで入れて使えるんだから。

312
NAME IS NULL[sage]   投稿日:2014/02/02 23:53:29  ID:???.net(521)
ただの釣りだと思います

313
NAME IS NULL[sage]   投稿日:2014/02/03 00:28:49  ID:???.net(521)
いろいろとありがとうございます。
西沢直木さんの本でコマンドを打ってみたりしました。
SQLは初めてですが、いまのところsqliteが扱いやすい(他と実際比べたわけでないけど)
と思いました。

Accessを比較にだしたのは個人的にローカルで株価などの経済データを扱いたいと思ったからです。
特にサーバを必要と感じなかったので、MySQLなどは今のところ考えていません。
ちゃんと説明せず申し訳ないです。概要はわかりましたありがとうございました。

314
NAME IS NULL[sage]   投稿日:2014/02/03 08:27:55  ID:???.net(521)
今は中学生が株やるのか
コメント1件

315
NAME IS NULL[sage]   投稿日:2014/02/03 23:57:55  ID:???.net(521)
これは、煽ってるんだよな。おそらく。

316
NAME IS NULL[sage]   投稿日:2014/02/04 07:43:15  ID:???.net(521)
Current Status

Version 3.8.3 of SQLite is recommended for all new development.
Upgrading from versions 3.7.17, 3.8.0.2, 3.8.1, and 3.8.2 is optional.
Upgrading from all other prior versions of SQLite is recommended.

317
NAME IS NULL[sage]   投稿日:2014/02/04 10:37:12  ID:???.net(521)
おい、CTE載ったじゃねーかよ。recursiveも使えるし
素晴らしい!長年の希望がひとつかなった。
valuesも単独で使えるようになってるし、GJ

あとはwindow関数・・・

318
NAME IS NULL[sage]   投稿日:2014/02/04 11:05:12  ID:???.net(521)
SQLite3のデータファイルと言うのは、それ自体にバージョンの違いが有るのでしょうか?
それとも個々が持ってるDLLで決まるのですか?

319
NAME IS NULL[sage]   投稿日:2014/02/04 12:21:38  ID:???.net(521)

320
NAME IS NULL[sage]   投稿日:2014/02/04 12:24:27  ID:???.net(521)

321
NAME IS NULL[sage]   投稿日:2014/02/04 12:50:03  ID:???.net(521)
フォーマットが変わるまで何もしなくて大丈夫なんですね
変わればDumpする

ファイルを触るプログラム側にバージョンの違いが有り
Access2013でmdbファイル操作するようなイメージなのかな

322
NAME IS NULL[sage]   投稿日:2014/02/04 17:19:16  ID:???.net(521)
SQLite Release 3.8.3 On 2014-02-03 (3.8.3)
http://sqlite.org/releaselog/3_8_3.html

323
NAME IS NULL[sage]   投稿日:2014/02/04 17:31:40  ID:???.net(521)
SQLite Query Language: WITH clause
http://sqlite.org/lang_with.html

WITH RECURSIVE
cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<1000000)
SELECT x FROM cnt;

324
NAME IS NULL[sage]   投稿日:2014/02/04 17:37:07  ID:???.net(521)
The VALUES clause

The phrase "VALUES(expr-list)" means the same thing as "SELECT expr-list".
The phrase "VALUES(expr-list-1),...,(expr-list-N)" means the same thing
as "SELECT expr-list-1 UNION ALL ... UNION ALL SELECT expr-list-N".
There is no advantage to using one form over the other.
Both forms yield the same result and both forms use the same amount of memory and processing time.

There are some restrictions on the use of a VALUES clause that are not shown on the syntax diagrams:

A VALUES clause cannot be followed by ORDER BY or LIMIT.
A VALUES clause cannot be used together with a WITH clause in a simple SELECT.

SQLite Query Language: SELECT
http://sqlite.org/lang_select.html#values

325
NAME IS NULL[sage]   投稿日:2014/02/06 00:39:27  ID:???.net(521)
>314
SQL自体は他のプログラム言語より易しいから、やろうと思えば中学でも習得できるだろ。
株は知らんが。

326
NAME IS NULL[sage]   投稿日:2014/02/07 11:35:14  ID:???.net(521)
>303
実際やってみた
1個のファイル vs 3915個に分割したファイル

俺の予想では分割したほうが遅いだろうと思ってたけど、結果は逆だった
ただし1ファイル(1テーブル)に対して発行する程度の話

InnerJoinしてサブクエリ出すような場合、分割してると出来ないのだが
GoLangでAttachする方法がわかんない、まぁ必須では無いので良いけどね

327
NAME IS NULL[sage]   投稿日:2014/02/07 11:46:47  ID:???.net(521)
間違った、1個ファイルの方が全然速い

328
NAME IS NULL[sage]   投稿日:2014/02/07 21:25:06  ID:???.net(521)
実際にやってみるのはいいことだけど、結果は当たり前だわな
データファイルがでかくなってどうしようもなくなったら DBMS の機能でファイル分割するべき

329
NAME IS NULL[sage]   投稿日:2014/02/12 07:36:24  ID:???.net(521)
3.8.3.1

330
NAME IS NULL[sage]   投稿日:2014/02/14 16:38:14  ID:???.net(521)
質問させて貰いたいんだけど、
SQLiteってファイルで保存されるけど、
それをそのまま他のSQLite入ってるコンピューターに送っても同じように挙動するの?
それともCSV形式とかに直したりして送らないといけない?

331
NAME IS NULL[sage]   投稿日:2014/02/14 17:18:34  ID:???.net(521)
同じバージョンで操作するなら同じだよ

332
NAME IS NULL[sage]   投稿日:2014/02/14 17:22:20  ID:???.net(521)
SQLite3どうしなら大丈夫って事だよね?
勿論、3.1.1と3.11.3とかバージョンが大きく違えば
仕様が変わったりでバグがあるかもしれないけれども

ありがと
コメント1件

333
NAME IS NULL[sage]   投稿日:2014/02/14 18:46:04  ID:???.net(521)
>332
互換の有無は↓にあるよ。
http://www.sqlite.org/formatchng.html

334
NAME IS NULL[sage]   投稿日:2014/02/14 20:35:54  ID:???.net(521)
centOS6使ってるんですが、TKSQLiteってどうやってインストールするんですか?
http://reddog.s35.xrea.com/wiki/TkSQLite.html#download
からTcl scriptとStandalone executable binary (sqlite 2.8.17 / 3.7.14)の
両方をダウンロードしたんですが、後者の方はTKSQLiteってのをダブルクリックしても動きません
前者は、tksqlite.tclってファイルが出来ましたが、中身はシェルスクリプトのようです
$bash tksqlite.tcl
とすればいいのでしょうか?
コメント1件

335
NAME IS NULL[sage]   投稿日:2014/02/14 22:43:56  ID:???.net(521)
そのTKSQLiteとやらの作者に聞けばいいと思うよ。

# 「Tcl script」なる物をダウンロードしたのに
# >中身はシェルスクリプトのようです
# なんて言ってるレベルじゃあ、先にLinuxを勉強した方が良いと思うけど。

336
NAME IS NULL[sage]   投稿日:2014/02/15 03:47:59  ID:???.net(521)
>334
後者だけど、URLにlinuxと入ってるのを落としてるよな?
win32とかosxとかの奴を落としてたら動かないのは当然だからな、対応OSが違う

それで動かなきゃ前者という話になるんだが
そのレベルだとTkSQLiteがTcl/Tkで出来ていると言ってもわからなさそうだな
後者で動かないなら素直に諦めとけ

337
NAME IS NULL[sage]   投稿日:2014/02/15 19:02:59  ID:???.net(521)
SQLiteにBOM入れたらどうなるの?

338
NAME IS NULL[sage]   投稿日:2014/02/15 19:33:05  ID:???.net(521)
爆発すんじゃね

339
NAME IS NULL[sage]   投稿日:2014/02/15 19:34:13  ID:???.net(521)
入るよ。

340
NAME IS NULL[sage]   投稿日:2014/02/16 12:33:27  ID:???.net(521)
爆発するのはbomb

341
NAME IS NULL[sage]   投稿日:2014/02/18 00:11:38  ID:???.net(521)
CREATE TABLE時にでもいいんだけど、文字コードをUTF-8に指定って出来ないの?
もし出来るならやり方教えてほしいんだけど

342
NAME IS NULL[sage]   投稿日:2014/02/18 00:18:01  ID:???.net(521)
ん?
pragma encoding=utf8;
と言うのをCREATE TABLEの前に実行すればいいのかな?

343
NAME IS NULL[sage]   投稿日:2014/02/18 10:28:51  ID:???.net(521)
何も指定してないなら基本的にutf8じゃないか?
pragma encodingで確認できるっしょ
あとsqlite側では一切コンバートしてくれないから注意
text指定しようが、blob指定しようがバイト列そのまま格納されるから

344
NAME IS NULL[]   投稿日:2014/02/20 16:47:39  ID:OV/jiJYc.net
SQLiteってMySQLみたいにユーザ名、パスワードを必要としないから、
基本的に誰でも中身を確認したり、いじったり出来るってことだよね?

345
NAME IS NULL[sage]   投稿日:2014/02/20 17:06:46  ID:???.net(521)
そりゃファイルのパーミッションによるだろう

346
NAME IS NULL[sage]   投稿日:2014/02/20 17:10:01  ID:???.net(521)
なるほど、SQLiteはパーミッションで制御するのね

347
NAME IS NULL[sage]   投稿日:2014/02/20 17:39:01  ID:???.net(521)
バカじゃねーの

348
NAME IS NULL[sage]   投稿日:2014/02/20 17:43:54  ID:???.net(521)
いろいろ混乱してるようです

349
NAME IS NULL[sage]   投稿日:2014/02/20 17:45:36  ID:???.net(521)
じゃぁどうするんだ?

350
NAME IS NULL[sage]   投稿日:2014/02/20 18:54:36  ID:???.net(521)
ファイルが弄れてフォーマットを知ってて連携の整合性を
保てるのであれば。はい。
っと言うことは・・・w

351
NAME IS NULL[sage]   投稿日:2014/02/27 09:22:21  ID:???.net(521)
質問させてください。
phpでsqliteを使っています。
select文でソートして取り出す時、descを指定しているのですが空のカラムが先頭に出てきます。
この空のカラムを0のカラムより後に出したいのですが、色々検索して調べてみたら以下でできるような記述がありました。

order by num is null desc, num desc

しかしこの指定では出力結果は変わりませんでした。
そもそも以下を指定しても空の位置が常に先頭に来てしまいます。

order by num is null asc
order by num is null desc

sqliteのバージョンは2.8.17 です。
何が原因なのでしょうか?
他に何か方法などありませんでしょうか?
コメント1件

352
NAME IS NULL[sage]   投稿日:2014/02/27 10:30:25  ID:???.net(521)
nullなの?descなら
nullは最後に来るはずだけど。
nullじゃ無くて間違えて空文字入ってるんじゃないの?

空文字なら
order by val <> '' desc, val desc
とかやらないと駄目なんじゃない?

353
NAME IS NULL[sage]   投稿日:2014/02/27 10:49:53  ID:???.net(521)
>351
本当に null なのか?
空文字 (長さ 0 の文字列) じゃないの?

354
NAME IS NULL[sage]   投稿日:2014/02/28 13:33:20  ID:???.net(521)
select で where と order by を併用すると構文エラーって言われるんだけど、
条件で絞り込んだselectの結果を並び替えたい場合ってどうするの?

355
NAME IS NULL[sage]   投稿日:2014/02/28 14:10:42  ID:???.net(521)
意味不明。
スレ違いだしsqlスレ行って可愛がってもらいなさい

356
NAME IS NULL[sage]   投稿日:2014/03/12 04:32:53  ID:???.net(521)
Current Status

Version 3.8.4.1 of SQLite is recommended for all new development.
Upgrading from 3.8.4 is optional. Upgrading from all other versions of SQLite is recommended.

357
NAME IS NULL[]   投稿日:2014/03/13 10:39:33  ID:dPrdAziV.net
SQLiteをWindow Azureに配置して
ASP.NETで使いたいんですけど、
可能ですか?
コメント1件

358
NAME IS NULL[sage]   投稿日:2014/03/14 04:17:26  ID:???.net(521)
>357
Azure Webサイト上の PHP なら普通に SQLite 使えたけど。

359
NAME IS NULL[]   投稿日:2014/03/25 21:16:58  ID:TOFQ0YWL.net
SQLite3をwindows8.1のmetroスタイルアプリに、
JavaScriptを用いて利用したいんだけどうまくいかない。

ビルドしたSQLite3.winmdをアプリから参照したし、SQLite3.jsもdefault.htmlにマークアップした。
しかし、default.jsから、
var dbPath = "sqliteファイルのパス";
SQLite3JS.openAsync(dbPath)...
とSQLite3.jsの関数を呼ぶと、
SQLite3.js内の401行辺りで SQLite3.Database.openAsync(dbPath)...が呼ばれる。いつもそこで
クラスが登録されていません
とエラーになる。

だ、誰か 助けて

360
NAME IS NULL[sage]   投稿日:2014/03/27 06:42:20  ID:???.net(521)
Current Status

Version 3.8.4.2 of SQLite is recommended for all new development.
Upgrading from all other versions of SQLite is recommended.

361
NAME IS NULL[sage]   投稿日:2014/04/13 22:20:28  ID:???.net(521)
threadlocalsとcheck_same_threadオプションはどういった意味があるのでしょうか。

日本語の情報が見つからないためご説明いただけると嬉しいです。

362
NAME IS NULL[sage]   投稿日:2014/04/17 22:42:50  ID:???.net(521)
>362
困った時はドキュメント。
https://www.sqlite.org/inmemorydb.html#temp_db

363
NAME IS NULL[sage]   投稿日:2014/04/17 23:25:53  ID:???.net(521)
ありがとうこざいます

364
NAME IS NULL[sage]   投稿日:2014/04/23 12:50:32  ID:???.net(521)
SQLite Release 3.8.4.3 On 2014-04-03 (3.8.4.3)

Add a one-character fix for a problem that might cause incorrect query results on a query that mixes DISTINCT, GROUP BY in a subquery, and ORDER BY.
Ticket 98825a79ce14.


Current Status

Version 3.8.4.3 of SQLite is recommended for all new development.
Upgrading from all other versions of SQLite is recommended.

365
NAME IS NULL[]   投稿日:2014/05/15 16:27:56  ID:SDSKVU7U.net
SQLiteでnewid()のような関数を使ってユニークIDを振りたいのですが
どうすればよいでしょうか?

CREATE TABLE "main"."TestTable" (
"a" INTEGER PRIMARY KEY NOT NULL,
"b" INTEGER NOT NULL
);

INSERT INTO TestTable Values ( 5 , newid())

*a はプログラム側がロジックにしたがって決定する
*b はDB側でユニークな値を自動生成してほしい。
コメント2件

366
NAME IS NULL[sage]   投稿日:2014/05/15 18:24:09  ID:???.net(521)
integer primary key は明示的に値を設定しなければ勝手に入るのでは

367
NAME IS NULL[sage]   投稿日:2014/05/26 10:48:59  ID:???.net(521)
インメモリDBを作り、それを別のプログラムから接続する事は出来ないんでしょうか?
コメント2件

368
NAME IS NULL[]   投稿日:2014/06/06 08:30:12  ID:0qswSBWs.net
2つ日付カラム(出来事の日、誕生日)があるとした場合、年齢計算はどうやりますか?

369
369[sage]   投稿日:2014/06/06 10:28:21  ID:???.net(521)
ごめんなさい、出来ました。
http://dara-j.asablo.jp/blog/2007/09/24/1816593

370
NAME IS NULL[sage]   投稿日:2014/06/07 09:51:01  ID:???.net(521)
>365
オートナンバー機能を持っていないから無理

>367
メモリ共有なんて機能はないから無理

君たち、SQLiteはフリーなローカル軽量DBという点に特化しているのだから
他のDBMSに慣れた人が過剰な要求をするのはNGですがな
ぶっちゃけて言えば、アプリ内データの一時保存手段と考えた方が幸せになれる

371
NAME IS NULL[sage]   投稿日:2014/06/07 10:41:06  ID:???.net(521)
>365
rowid じゃダメなの?
http://www.sqlite.org/lang_createtable.html#rowid

372
白バラ十字軍[]   投稿日:2014/06/10 15:43:53  ID:gr7v9uKn.net
今では殺人事件凶悪事件が起こると創価員かというぐらい
ネットではささやかれる時代になりました。刑務所受刑者の33%は創価員という事実は有名な話ですが、以下を見れば納得ができます

創価員が裁かれる    判決の際 法廷にこだまする「 池 田 先 生 万 歳 !」
◎以下これ以外にまだまだ創価員の犯罪多数あり、書類送検されていないだけであなたの街でも多数すさまじい事件の数が
発生しましたし、まだまだ毎日のように創価員による凶悪事件は発生しているのです!
しかもこれ以外にもTVでも報道された凶悪事件多数あり!。あなたの周りにも潜んでいる。
危険です。危機的状況です。酒鬼薔薇だけではありません。実にたくさんいるのです
あなたの街でも善良な人間のように取り繕い潜んでいるのです。

●宅間守(在日)→大阪 附属池田小学校児童殺傷 創価学会員。大量殺人犯 。8人殺害 15人が重軽傷。悪徳 朝鮮人部落出身。
(悪徳カルト)両親も創価学会員。獄中結婚したが相手の女も創価員。さすが創価員は悪徳な者を好む。あえて結婚する
とは殺人破壊者を賛美、美化、擁護する行為 2004年死刑執行 獄中結婚した女は慰謝料損害賠償払ったのか?被害者に詫びたのか?
宅間は被害者に詫びていない。つまり・・・判決の際 法廷にこだまする「 池 田 先 生 万 歳 !」ということ
日本の犯罪史上、稀に見る大事件
●畠山鈴香 (在日)→秋田県児童連続殺害事件 創価学会員。悪徳。(悪徳カルト)
●斉藤勇太 →JR取手駅前バス無差別殺傷事件 創価学会員。悪徳。(悪徳カルト)
●酒鬼薔薇聖斗→ 東慎一郎(在日)神戸の首切り魔で酒鬼薔薇聖斗 創価学会員。神戸の首切り魔。生首を校門に飾る。悪徳2人殺害。
元在日朝鮮人。両親も創価学会員(悪徳カルト)
●福田孝行(在日)→山口県母子殺害 殺害後屍姦、乳児も殺害 創価学会員。悪徳(悪徳カルト)
●阿部隆 →長野母子バラバラ殺人事件(平成元年)船橋市幼児バラバラ殺人事件 千葉県船橋市の熱心な創価学会員・A・A子さんと長男
のHちゃんが、同じく学会員である夫のA・Tに殺された。動機は生活苦。バラバラにされた死体が聖教新聞に包まれ、長野県の山中に捨
てられていた 悪徳(悪徳カルト)

373
NAME IS NULL[sage]   投稿日:2014/06/10 23:37:18  ID:???.net(521)
>367
出来ます。
データファイルをラムディスクの上に置きましょう。
コメント1件

374
NAME IS NULL[sage]   投稿日:2014/06/11 02:14:52  ID:???.net(521)
>373
それは物理的な置き場がメモリになっただけで"インメモリDB"ではないよね…。

375
NAME IS NULL[sage]   投稿日:2014/06/13 09:17:08  ID:???.net(521)
SQLite Release 3.8.5 On 2014-06-04 (3.8.5)

Added support for partial sorting by index.
Enhance the query planner so that it always prefers an index that uses a superset of WHERE clause terms relative to some other index.
Improvements to the automerge command of FTS4 to better control the index size for a full-text index that is subject to a large number of updates.
Added the sqlite3_rtree_query_callback() interface to R-Tree extension
Added new URI query parameters "nolock" and "immutable".
Use less memory by not remembering CHECK constraints on read-only database connections.
Enable the OR optimization for WITHOUT ROWID tables.
Render expressions of the form "x IN (?)" (with a single value in the list on the right-hand side of the IN operator) as if they where "x==?", Similarly optimize "x NOT IN (?)"
Add the ".system" and ".once" commands to the command-line shell.
Added the SQLITE_IOCAP_IMMUTABLE bit to the set of bits that can be returned by the xDeviceCharacteristics method of a VFS.
Added the SQLITE_TESTCTRL_BYTEORDER test control.

376
NAME IS NULL[]   投稿日:2014/06/18 11:06:47  ID:/pFl4NPD.net(2)
環境:PHP5.4 SQLite3.7

SELECT sample_id FROM user_list ORDER BY RANDOM() LIMIT 3;

としてランダムに3件のsample_idを取得できているのですが、
これに除外条件を付け加えたところ機能しません。

SELECT sample_id FROM user_list ORDER BY RANDOM() NOT IN ('1234') LIMIT 3;

こうすると特定の3件のみが返ってきます。
NOT INの使い方に問題があるのだと思いますがどのようにすれば3件のランダム取得をしながら1234だけ除外ということが出来るようになるのでしょうか?
アドバイスいただけると助かります。

377
NAME IS NULL[sage]   投稿日:2014/06/18 11:31:08  ID:???.net(521)
何を除外したいの?
WHERE で外せばいいだけでは
コメント1件

378
377[]   投稿日:2014/06/18 12:01:03  ID:/pFl4NPD.net(2)
>377
1234という値を外したいと思い「NOT IN ('1234')」というのを付加したのですが
WHEREで外すということでしょうか。

379
NAME IS NULL[sage]   投稿日:2014/06/18 12:20:05  ID:???.net(521)
RANDOM() NOT IN ('1234')
だとRANDOM()の結果が'1234'以外は1が返るだけじゃないかな

SELECT sample_id FROM user_list WHERE sample_id NOT IN (1234) ORDER BY RANDOM() LIMIT 3;

こうならん?

380
NAME IS NULL[]   投稿日:2014/06/18 23:39:59  ID:b5gx/YIo.net
すごく初心者で申し訳ありません。質問です
.txtに入っている|で区切ってある顧客情報をsqlite3を使ってテーブル作りたいです。import
filename table name をsqlite3.exeで実行して、テーブルを入れたデータベースをsqlitebrowser
でみてましたがなにもはいっていません。どうしたらよいでしょうか。。
。お願いします!!!
コメント1件

381
NAME IS NULL[sage]   投稿日:2014/06/18 23:58:31  ID:???.net(521)
>380
質問する時は情報を正確に。
・txtには何が入っている?
・どんなテーブルに格納しようとしている?
・importを実行した時に出たメッセージは?
・sqlitebrowserとやらで出たメッセージは?

382
NAME IS NULL[sage]   投稿日:2014/06/19 10:21:48  ID:???.net(521)
sqlite3.exe で .import したんだったら、その場で select * from tablename
してみるといい

383
NAME IS NULL[sage]   投稿日:2014/06/19 12:50:27  ID:???.net(521)
sqliteってどのくらいの規模に耐えられますか?
コメント1件

384
NAME IS NULL[sage]   投稿日:2014/06/19 15:56:46  ID:???.net(521)
2GBまで

385
NAME IS NULL[sage]   投稿日:2014/06/19 18:02:26  ID:???.net(521)
>383
規模=DBサイズのことを言ってるならスペック最大値は128TiBまで。のLimits(>1)参照
規模=クライアント数のことを言ってるならアクセス頻度とかを考慮してもあまり多い案件には向かない。

386
NAME IS NULL[sage]   投稿日:2014/06/19 20:31:18  ID:???.net(521)
DBサイズが多くなるとパフォーマンスって下がりますかね?
コメント1件

387
381[]   投稿日:2014/06/19 21:16:13  ID:eiPp00xe.net
すいません 382さん、383さんありがとうございます。解決しました。
文字の規格の問題だったようです。ありがとうございました。

388
NAME IS NULL[sage]   投稿日:2014/06/19 23:41:54  ID:???.net(521)
>386
サイズはまあ、10Gとか20Gとかのレベルだったら平気
(でも、あんまり肥大化するなら他の(組み込み系じゃない)RDBMS使った方が良い)

それよりも個々のデータサイズとかアクセス回数が重要な気がする
SQLiteの性質上、全てのデータを単一のファイルに保存しているわけなので、
時間のかかるアクセス(=でかいデータ)を頻繁に行うとロック待ちが多発して性能が出ない
同時アクセス数が1ならその限りではないけどね

389
NAME IS NULL[sage]   投稿日:2014/06/20 01:32:58  ID:???.net(521)
ファイル一個で管理出来る手軽さ をポイントにしたほうがいいね。

390
NAME IS NULL[]   投稿日:2014/06/27 09:38:40  ID:93MY7apK.net
◎2chスレッド勢いランキングサイトリスト◎

★+ニュース板
・ 2NN (推奨サイト)
・ 2chTimes
★+ニュース板新着
・ 2NN新着
・ Headline BBY
・ unker Headline
★+ニュース板その他
・ Desktop2ch
・ 記者別一覧
★全板
・ 全板縦断勢いランキング (推奨サイト)
・ スレッドランキング総合ランキング
・ ログ速
★全板実況込み
・ 2勢 (推奨サイト)
・ READ2CH
・ i-ikioi

※ 要タイトル検索
※ 2chブラウザ併用推奨

391
マッチ棒[sage]   投稿日:2014/06/30 11:41:19  ID:???.net(521)
こんばんはお世話になります
mySQLとPHPで構築したデータを、SQLiteに移植したいと考えています。
mySQLのViewという機能は、どのように実現したらよいでしょうけ?
コメント1件

392
NAME IS NULL[sage]   投稿日:2014/06/30 12:31:16  ID:???.net(521)
SQLiteもVIEWあるべ?

393
381[]   投稿日:2014/06/30 23:02:20  ID:ixE6Je2A.net
初心者です。もしかしたらpythonの質問かもしれません。スレチだったらごめんなさい。
いまpython2.7からsqlite3で日本語のデータを含むテーブルを作りました。
これをpython上でpandas使ってみてみると文字化けすることなく見ることは出来ました。
しかしそのテーブルからstageという名のカラムに良好と書いてあるデータを取り出し
viewをつくろうと思い
cur.execute('create view viewname as select * from tablename where stage=良好)
としたのですが
OperationalError: near "繧キ繝ォ繝舌&#65533;": syntax error
とでてきて良好が文字化けしてしまいます
どうしたらよいでしょうか?おねがいします!!
コメント1件

394
NAME IS NULL[sage]   投稿日:2014/07/01 00:07:11  ID:???.net(521)
>391
>mySQLのViewという機能
まずSQLを勉強してからMySQLとかSQLiteを触った方が良いよ。

>393
pythonの質問なのでスレ違い。

395
NAME IS NULL[]   投稿日:2014/07/01 09:13:36  ID:mnQrmKyM.net(2)
UTF8をSJISで読んでる典型だな

396
NAME IS NULL[]   投稿日:2014/07/01 09:15:18  ID:mnQrmKyM.net(2)
だいたい、'良好' たろ

397
NAME IS NULL[sage]   投稿日:2014/07/01 16:22:24  ID:???.net(521)
文字化けを復元すると、「シルバ」、、、シルバーとかか

398
NAME IS NULL[sage]   投稿日:2014/07/01 21:09:32  ID:???.net(521)
文字化けを解読するクセはやめなさいw

399
NAME IS NULL[sage]   投稿日:2014/08/17 00:46:15  ID:???.net(521)
3.8.6
http://www.sqlite.org/releaselog/3_8_6.html

・Added support for hexadecimal integer literals in the SQL parser. (Ex: 0x123abc)
・Enhanced the PRAGMA integrity_check command to detect UNIQUE and NOT NULL constraint violations.
・Increase the maximum value of SQLITE_MAX_ATTACHED from 62 to 125.
・Increase the timeout in WAL mode before issuing an SQLITE_PROTOCOL error from 1 second to 10 seconds.
・Added the likely(X) SQL function.
・The unicode61 tokenizer is now included in FTS4 by default.
・Trigger automatic reprepares on all prepared statements when ANALYZE is run.
・Added a new loadable extension source code file to the source tree: fileio.c
・Add extension functions readfile(X) and writefile(X,Y) (using code copy/pasted from fileio.c in the previous bullet) to the command-line shell.
・Added the .fullschema dot-command to the command-line shell.

400
NAME IS NULL[sage]   投稿日:2014/08/19 03:50:20  ID:???.net(521)
何故か実装されてなかった16進数リテラルが実装されたか。
あとは排他的論理和演算子が何故実装されてないのかが謎

401
NAME IS NULL[]   投稿日:2014/09/21 00:43:04  ID:I6B1K8ho.net
MySQLとか設計めんどくさいからSQLiteで済ましてしまう

402
NAME IS NULL[sage]   投稿日:2014/09/21 01:29:22  ID:???.net(521)
ちゃちゃっとDBならSQLiteだわな
いちいちpgsqlにしようとは思わない

403
NAME IS NULL[sage]   投稿日:2014/09/21 01:46:04  ID:???.net(521)
排他処理を自分でしないとだからめんどっちい・・

404
NAME IS NULL[sage]   投稿日:2014/09/21 01:56:15  ID:???.net(521)
え、排他処理は自動でされるぞ・・?

405
NAME IS NULL[sage]   投稿日:2014/09/21 09:51:39  ID:???.net(521)
共有フォルダとかだとぶつかる
コメント1件

406
NAME IS NULL[sage]   投稿日:2014/09/21 13:05:14  ID:???.net(521)
だからちゃちゃっとですよ。
マルチプロセスとかマルチスレッドとかなると
いろいろ考えなければならんからね
いちお 大丈夫だけどね やっぱねw

407
NAME IS NULL[sage]   投稿日:2014/09/21 15:17:01  ID:???.net(521)
マルチスレッドで衝突する「排他処理」とは一体なにを「排他」しているのか…
コメント1件

408
NAME IS NULL[sage]   投稿日:2014/09/21 17:10:18  ID:???.net(521)
>405
今時flockも無いようなファイルシステムを共有するなよ

>407
グローバル変数とか…?
コメント1件

409
NAME IS NULL[sage]   投稿日:2014/09/21 17:16:51  ID:???.net(521)
>408
しょうがねえだろ、WindowsCEを現役で使ってんの

410
NAME IS NULL[sage]   投稿日:2014/09/21 20:35:21  ID:???.net(521)
Oh..

411
NAME IS NULL[sage]   投稿日:2014/09/22 22:53:39  ID:???.net(521)
"自分で作った排他処理"ほど信用ならないものはない

412
NAME IS NULL[sage]   投稿日:2014/09/23 00:21:29  ID:???.net(521)
排他処理にならないように使うのだ

413
NAME IS NULL[sage]   投稿日:2014/10/18 03:57:47  ID:???.net(521)
SQLite Release 3.8.7 On 2014-10-17 (3.8.7)
http://www.sqlite.org/releaselog/3_8_7.html

Performance Enhancements:
Many micro-optimizations result in 20.3% more work for the same number of CPU cycles relative to the previous release. The cumulative performance increase since version 3.8.0 is 61%.
(Measured using cachegrind on the speedtest1.c workload on Ubuntu 13.10 x64 with gcc 4.8.1 and -Os. Your performance may vary.)
The sorter can use auxiliary helper threads to increase real-time response. This feature is off by default and may be enabled using the PRAGMA threads command or the SQLITE_DEFAULT_WORKER_THREADS compile-time option.
Enhance the skip-scan optimization so that it is able to skip index terms that occur in the middle of the index, not just as the left-hand side of the index.
Improved optimization of CAST operators.
Various improvements in how the query planner uses sqlite_stat4 information to estimate plan costs.

New Features:
Added new interfaces with 64-bit length parameters: sqlite3_malloc64(), sqlite3_realloc64(), sqlite3_bind_blob64(), sqlite3_result_blob64(), sqlite3_bind_text64(), and sqlite3_result_text64().
Added the new interface sqlite3_msize() that returns the size of a memory allocation obtained from sqlite3_malloc64() and its variants.
Added the SQLITE_LIMIT_WORKER_THREADS option to sqlite3_limit() and PRAGMA threads command for configuring the number of available worker threads.
The spellfix1 extension allows the application to optionally specify the rowid for each INSERT.
Added the User Authentication extension.

Bug Fixes:
Fix a bug in the partial index implementation that might result in an incorrect answer if a partial index is used in a subquery or in a view. Ticket 98d973b8f5.
Fix a query planner bug that might cause a table to be scanned in the wrong direction (thus reversing the order of output) when a DESC index is used to implement the ORDER BY clause on a query that has an identical GROUP BY clause. Ticket ba7cbfaedc7e6.
Fix a bug in sqlite3_trace() that was causing it to sometimes fail to print an SQL statement if that statement needed to be re-prepared. Ticket 11d5aa455e0d98f3c1e6a08
Fix a faulty assert() statement. Ticket 369d57fb8e5ccdff06f1

414
NAME IS NULL[sage]   投稿日:2014/10/19 18:34:23  ID:???.net(521)
ユーザー認証拡張が興味深い

415
NAME IS NULL[sage]   投稿日:2014/10/20 17:14:47  ID:???.net(521)
小さな改善をコツコツ積み重ねたら20.3%高速化したってこと? すごいね。

416
NAME IS NULL[sage]   投稿日:2014/10/20 22:24:19  ID:???.net(521)
開発チームはいい仕事するね
でもオプティマイザの改善は使う側がへボイと逆に100倍遅くなるんこともあるんだ
もちろん俺のことさ
その改善バージョンのリリースノートにもご丁寧に書いてあったよ。インデックス張れってね
ハハハ

417
NAME IS NULL[sage]   投稿日:2014/11/06 01:03:53  ID:???.net(521)
3.8.7.1 来てた

418
NAME IS NULL[sage]   投稿日:2014/11/06 02:57:56  ID:???.net(521)
SQLite Release 3.8.7.1 On 2014-10-30 (3.8.7.1)

In PRAGMA journal_mode=TRUNCATE mode, call fsync() immediately after truncating the journal file to ensure that the transaction is durable across a power loss.
Fix an assertion fault that can occur when updating the NULL value of a field at the end of a table that was added using ALTER TABLE ADD COLUMN.
Do not attempt to use the strchrnul() function from the standard C library unless the HAVE_STRCHRNULL compile-time option is set.
Fix a couple of problems associated with running an UPDATE or DELETE on a VIEW with a rowid in the WHERE clause.

419
NAME IS NULL[]   投稿日:2014/11/19 22:18:26  ID:+solJAhq.net
SQLite Release 3.8.7.2 On 2014-11-19 (3.8.7.2)

・Enhance the ROLLBACK command so that pending queries are allowed to continue as long as the schema is unchanged.
 Formerly, a ROLLBACK would cause all pending queries to fail with an SQLITE_ABORT or SQLITE_ABORT_ROLLBACK error.
 That error is still returned if the ROLLBACK modifies the schema.
・Bug fix: Make sure that NULL results from OP_Column are fully and completely NULL and do not have the MEM_Ephem bit set. Ticket 094d39a4c95ee4.
・Bug fix: The %c format in sqlite3_mprintf() is able to handle precisions greater than 70.
・Bug fix: Do not automatically remove the DISTINCT keyword from a SELECT that forms the right-hand side of an IN operator since it is necessary if the SELECT also contains a LIMIT. Ticket db87229497.

420
NAME IS NULL[sage]   投稿日:2014/12/04 12:10:10  ID:???.net(521)
Accessしか知らない無知で申し訳ない
このDBMSは、Accessのようにあらかじめクエリを登録しておき
後からそのクエリを呼び出す仕組みはないと理解してよいのかな?
何らかの言語から都度クエリ文字列をexecuteするしかない?
コメント1件

421
NAME IS NULL[sage]   投稿日:2014/12/04 14:59:30  ID:???.net(521)

422
NAME IS NULL[sage]   投稿日:2014/12/04 15:19:11  ID:???.net(521)
>421
早速ありがとう
勉強してみます

423
NAME IS NULL[]   投稿日:2014/12/06 23:04:14  ID:LOwRbxtB.net
SQLiteでのレコードの削除について質問させて下さい。

dateDataとflagというカラムが有り、
dateDataには201412061212といった値が入り、
flagには0か1の値が入ります。

flagが0でdateDataが最小値のレコードを1行だけ削除したい場合、
記述はどの様になりますでしょうか?

自分なりに調べて以下を記述したらエラーになりました。
delete from テーブル名 where flag = 0 order by dateData limit 1
どうぞ宜しくお願いします。

424
NAME IS NULL[sage]   投稿日:2014/12/06 23:30:15  ID:???.net(521)
SQLite関係ないな

425
NAME IS NULL[sage]   投稿日:2014/12/07 00:03:15  ID:???.net(521)
へぇー
これエラーになるのか
面白いな

426
NAME IS NULL[sage]   投稿日:2014/12/07 00:38:28  ID:???.net(521)
SQLiteSpy 1.9.8 win32 でちゃちゃっと

[1] create table testtable(dateData int, flag int)

[2] insert into testtable (dateData, flag) values
(20141201120007, 0),
(20141201120003, 1),
(20141201120002, 1),
(20141201120007, 0),
(20141201120008, 0)

[3] select dateData, flag from testtable
dateData flag
20141201120007 0
20141201120003 1
20141201120002 1
20141201120007 0
20141201120008 0

[4] delete from testTable where flag = 0 order by dateData limit 1

[5] select dateData, flag from testtable
dateData flag
20141201120003 1
20141201120002 1
20141201120007 0
20141201120008 0
コメント1件

427
424[]   投稿日:2014/12/07 00:48:58  ID:JECAD2Ur.net(2)
すみません。環境書き忘れてました。

Android SDKで使用してます。
>426さんの記述をコピペして実行しても
near "order": syntax error
となってしまいます。

428
NAME IS NULL[sage]   投稿日:2014/12/07 00:54:05  ID:???.net(521)
http://www.sqlite.org/lang_delete.html

>Optional LIMIT and ORDER BY clauses
>
>If SQLite is compiled with the SQLITE_ENABLE_UPDATE_DELETE_LIMIT compile-time option,
>then the syntax of the DELETE statement is extended by the addition of optional
>ORDER BY and LIMIT clauses:

ご使用になっている SQLite3 は SQLITE_ENABLE_UPDATE_DELETE_LIMIT オプションを付けて
コンパイルされたものではないのでしょう。
コメント1件

429
NAME IS NULL[sage]   投稿日:2014/12/07 10:43:16  ID:???.net(521)
まあ最小のものからランダムに1件消すなんて普通はやらんしな。
一意になるカラム無いならサロゲートキーつけては
コメント1件

430
424[]   投稿日:2014/12/07 11:43:36  ID:JECAD2Ur.net(2)
>428様 >429
ありがとうございます。

もう少し勉強して他の方法を探します。

431
NAME IS NULL[sage]   投稿日:2014/12/07 11:44:36  ID:???.net(521)
行と行の比較をするんだから、相関サブクエリ使うところじゃね?

432
NAME IS NULL[sage]   投稿日:2014/12/07 12:09:28  ID:???.net(521)
まあ1件しか無いのなら、min()で1件ひけば済むことではあるな

433
424[sage]   投稿日:2014/12/07 22:25:21  ID:???.net(521)
delete from テーブル名 where flag= 0 and dateData = (select min(dateData) from テーブル名 where flag= 0
で出来ました。
レスくれた方々ありがとうございました。

434
NAME IS NULL[sage]   投稿日:2014/12/10 23:35:36  ID:???.net(521)
SQLite Release 3.8.7.4 On 2014-12-09 (3.8.7.4)

Bug fix: Add in a mutex that was omitted from the previous release.

435
[sage]   投稿日:2014/12/25 19:45:05  ID:???.net(521)
/:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ヽ
    /:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::://ヽ:::::::::::::::|
    l:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::// ヽ::::::::::::::l
    l:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::/:::「'ヽ::::::::::://   ヽ:::::::::::|
    |::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ノl:::ノ l:::::::/      ヽ::::::::|
   ノ:::::::::::::::::::::::::::::::::::::::::::::::::::::/ ゙゙  ノ:::/ ,,;;;;;;,,    ,,,,ヽ:::::l
   ):::::::::::::::::::::::::::::::::::::::::::::::/    ノ/ __,'''i: ('''__):::l  
  )::::::::::::::::::::::::::::::::::::::::::::::::::/         ̄ ̄ン:. :「 ̄`ヾ   
 1:::::::::::::::::::::::「 `┤l:::::::::::::::::l          ̄   ,  ヽ ̄ l   
  `l:::::::::::::::::::::ヽ  :l li:::::::::::::/        ヽ  /´   `l  |
  ヽ::::::::::::::::::::::\_」 lヽ::::/         .l  !:-●,__ ノ  /      
  ノ:::::::::::::::::::::::::::ノ | l `゙゙           i ,,;;;;;;;;;;;;;;;;;;;;,  /ヽ       
,/ ヽ::::::::::::::::::::::(  l l::::::::..         /.:''/´ ̄_ソ  /  `ヽ
     ヽ:::::::::::::::ヽ | l:::::::::::...      /::// ̄ ̄_ソ  /    \   ヴッ!!
        ヽ:::::::\| l::::::::::::::::...    / :::.ゝ` ̄ ̄/ /       ヽ
           ヽ:::l l:::::::::::::::::::..      ̄ ̄;;'' /         ヽ
              l l;;;;;;:::::::::::::::.....;;;;............;;;;;;''ノ            l
              l l '''''''''''''''''''''''''''''''''''''' ̄l |             |

http://www.youtube.com/watch?v=z2qK2lhk9O0

436
NAME IS NULL[sage]   投稿日:2015/01/01 04:29:07  ID:O/RvlKq4D(3)
すいません、教えてくんです。
初めてのデータベースとして、sqliteをphpのPDOで使っています。
PHPスレッドよりもこちらの方が何か教えてもらえるかと思いまして、こちらにか行きます。

テーブル t2 から参照されていない テーブル t1 のデータを取り出したく、
下記構文で実行させました(ふたつのテーブルをJOINしまして、テーブル2の内容が NULLのものを探す、の意)

$query = "SELECT t1.* FROM t1 LEFT OUTER JOIN t2 ON (t1.id = t2.order) WHERE t2.order IS NULL;";
$statement = pdo_object->query($query);

foreach($statement as $row) {
    echo $row['id'];
}

こんなんで実験していますが、t1, t2 共、1万件ほどのデータ(列は50くらいあります)で終了まで40秒ほどかかります。
foreach()のループをやめると、200ミリ秒かかりません。
while() と fetch()でループ、あるいは先に fetchall() してからループなど、
試してみましたが、どちらもほぼ40秒。
データベースとしては、200ミリ秒以内に終わっていると思っていいですよね?
何か根本的にNGでしょうか。

t1.id は主キーです。t2.order は、インデックス作成してみましたが、ほとんど結果はかわらずでした。

437
NAME IS NULL[sage]   投稿日:2015/01/01 04:58:49  ID:O/RvlKq4D(3)
すいません、情報不足でした。結果は200個ほどのデータになります。

ポスト処理を

for($i = 0; $i < 10; ++$i) {
    $row = $statement->fetch();
    echo $row['id'];
}

に変えて、ループ回数を変えてみたところ、
処理時間は比例するような感じでした。
なぜ fetch() がデータ1個あたり0.2秒もかかるのか調べることにします。
データの列名に日本語のものがあるので、まずこれを英文字に変えてみます。
また報告します。

438
sage[]   投稿日:2015/01/01 05:22:29  ID:O/RvlKq4D(3)
何度もすいません、SELECT t1.* の部分は、
SELECT t1.id まで絞っても、処理時間は変わりませんでした。

JOIN無しで、単に SELECT * FROM t1 は、
200行程度なら、あっという間に処理します。
fetch()は結果を配列にするデータ処理以外にも、
SQL文に依存して挙動を変えるのでしょうか。

他に理由が思いつかないので、項目名の日本語がダメなのかと思って、今から試します。
phpのPDOの話で恐縮ですが、何かご存知の方、教えて下さい。すいません。

439
436[sage]   投稿日:2015/01/03 02:06:12  ID:QiK+tGXs8(2)
カラム名に日本語が混じっていたので、英数に変えてみましたが、
結果はまったく変わらずでした。
SELECT t1.id 〜 まで絞っても結果は変わりませんので、そもそも期待薄でしたが…。

ここまでサーバーの PHP5.2.14 でしたが、
ローカルに最新のXAMPPを入れて(PHP5.6.3)試したところ、1/10ほどの実行時間でした。
fetch()する前までだと、1/3程度の実行時間でした。
かなり速くなりましたが、まだまだ納得のいく速度ではないです。

CPUが異なって定量的な比較になりにくいため、
サーバーのPHPのバージョンを上げてみることにします。
また報告します。なんか的外れなことしてるような。

440
436[sage]   投稿日:2015/01/03 21:38:34  ID:QiK+tGXs8(2)
完全にSQLiteではなく、PHPのフロントエンドだと思ってますが、
引き続き書き込ませて頂きます。PHP5.2.14からPHP5.3.29へ変更でき、
1割くらい実行時間が減りました。詳細不明です。

t1のカラム数を半減させてもまったく実行時間は変わりませんでしたが、
t2のカラム数を半減させたところ、実行時間が半減しました。
SELECT で t2 のカラムは選んでいないのですが・・・。
こういうものでしょうか。

また何かあれば報告します。

441
NAME IS NULL[sage]   投稿日:2015/01/16 10:48:39  ID:???.net(521)
プログラミング歴は、10年以上になりますが
DBに関しては1年強レベルです。
で、質問なんですがSQLightを主に使っているんですが
命令文での、orとand文は、左結合ですか?
あと試した事は無いですがorとand文辺りは
カッコでくくっても認識してくれるんでしょうか?
どなたかご教示願います。

442
NAME IS NULL[sage]   投稿日:2015/01/16 16:28:43  ID:???.net(521)
10年以上もプログラミング歴がある割に
それくらい聞くより調べるほうが簡単で早くて正確だとわからないなんて……

443
NAME IS NULL[sage]   投稿日:2015/01/16 17:03:59  ID:???.net(521)
ネットがなかった頃からやってるんじゃね
本屋に買いに行って調べるより電話で聞く方が早いと思ってるんだろう

444
NAME IS NULL[sage]   投稿日:2015/01/16 17:09:53  ID:???.net(521)
とりあえず使ってるDBの名前を正しく覚えよう
コメント1件

445
NAME IS NULL[sage]   投稿日:2015/01/16 19:53:53  ID:???.net(521)
こんな奴にプログラマとかSEとかIT技術者とかなんとかエンジニアとか名乗られたくないな。
存在が迷惑死、業界から消えてくれ。

446
NAME IS NULL[sage]   投稿日:2015/01/17 07:50:19  ID:???.net(521)
SQLite Release 3.8.8

http://www.sqlite.org/releaselog/3_8_8.html

・Added the PRAGMA data_version command that can be used to determine if a database file has been modified by another process.
・Added the SQLITE_CHECKPOINT_TRUNCATE option to the sqlite3_wal_checkpoint_v2() interface,
 with corresponding enhancements to PRAGMA wal_checkpoint.
・Added the sqlite3_stmt_scanstatus() interface, available only when compiled with SQLITE_ENABLE_STMT_SCANSTATUS.
・The sqlite3_table_column_metadata() is enhanced to work correctly on WITHOUT ROWID tables
 and to check for the existence of a a table if the column name parameter is NULL.
 The interface is now also included in the build by default, without requiring the SQLITE_ENABLE_COLUMN_METADATA compile-time option.
・Added the SQLITE_ENABLE_API_ARMOR compile-time option.
・Added the SQLITE_REVERSE_UNORDERED_SELECTS compile-time option.
・Added the SQLITE_SORTER_PMASZ compile-time option and SQLITE_CONFIG_PMASZ start-time option.
・Added the SQLITE_CONFIG_PCACHE_HDRSZ option to sqlite3_config() which makes it easier for applications
 to determine the appropriate amount of memory for use with SQLITE_CONFIG_PAGECACHE.
・The number of rows in a VALUES clause is no longer limited by SQLITE_LIMIT_COMPOUND_SELECT.
・Added the eval.c loadable extension that implements an eval() SQL function that will recursively evaluate SQL.

447
NAME IS NULL[sage]   投稿日:2015/01/21 07:42:58  ID:???.net(521)
SQLite Release 3.8.8.1

http://www.sqlite.org/releaselog/3_8_8_1.html

・Fix a bug in the sorting logic, present since version 3.8.4, that can cause output to appear in the wrong order on queries
that contains an ORDER BY clause, a LIMIT clause, and that have approximately 60 or more columns in the result set.
Ticket f97c4637102a3ae72b79.

448
NAME IS NULL[sage]   投稿日:2015/01/21 21:26:58  ID:???.net(521)
バージョンアップが激しすぎてついていけない、、、

449
NAME IS NULL[]   投稿日:2015/03/01 00:37:15  ID:sjX82R5K.net
>444
神戸市の東、芦屋西宮の知的障害者施設で未成年利用者に性的な行為をして淫行条例で逮捕された三田谷学園元職員の堂垣直人(西宮市老松町)は、結局どういう罪になったの?
被害者家族のケアを芦屋市役所と兵庫県警はちゃんとやったのか?
差別や虐待は環境を選べない子供には関係ない。

http://www.youtube.com/watch?v=JxMzW3ZlV4g&;sns=em

450
NAME IS NULL[sage]   投稿日:2015/04/12 02:47:56  ID:???.net(521)
.NET用は32ビットと64ビットのバイナリをまとめて欲しいなぁ・・・

451
NAME IS NULL[]   投稿日:2015/05/09 17:01:37  ID:ZgDS20Jy.net
SQLite Release 3.8.10 On 2015-05-07

Added the sqldiff.exe utility program for computing the differences between two SQLite database files.
Added the y format string to the matchinfo() function of FTS3.
Performance improvements for ORDER BY, VACUUM, CREATE INDEX, PRAGMA integrity_check, and PRAGMA quick_check.
Fix many obscure problems discovered while SQL fuzzing.
Identify all methods for important objects in the interface documentation. (example)
Made the American Fuzzy Lop fuzzer a standard part of SQLite's testing strategy.
Add the ".binary" and ".limits" commands to the command-line shell.
Make the "dbstat" virtual table part of standard builds when compiled with the SQLITE_ENABLE_DBSTAT_VTAB option.

452
NAME IS NULL[]   投稿日:2015/05/25 10:34:24  ID:aYoHQFUg.net
環境:VC#2013 + System.Data.Sqlite(1.0.96.0)

既存のテーブルのカラムの内容を参照して、別のカラムに計算結果を格納する、と言う処理を行おうとしています。
計算結果を格納するカラムを後から追加した都合で、追加前のデータも参照、更新対象になります。
 以下のようなプログラムを組んだのですが、計算結果がrow["Dest"]に格納されているのにもかかわらず、
ad.Update()の結果が0、例外も発生しないという状態になっています。
 どこか手順等に誤りはありますでしょうか?

string strCommand = "SELECT * FROM ResultTable";
DataTable data = new DataTable();
string tmp = ""; int Calc;
using(conn = new SQLiteConnection(ConnectionString))
{
  conn.Open();
  using(SQLiteTransaction tr = conn.BeginTransaction())
  {
    using(SQLiteDataAdapter ad = new SQLiteDataAdapter(strGetDat, conn)){
      ad.Fill(data);
      SQLiteCommandBuilder bl = new SQLiteCommandBuilder(ad);
      ad.UpdateCommand = bl.GetUpdateCommand(true);
      ad.UpdateCommand.Transaction = tr;
      foreach(DataRow row in data.Rows){
        tmp = (string)row["Source"];
        // ここで計算する
        row["Dest"] = Calc;
      }
      data.AcceptChanges();
      int i =ad.Update(data);
      Debug.Print(i.ToString());
    }
  conn.Close();
  }
}

453
NAME IS NULL[sage]   投稿日:2015/05/25 11:31:55  ID:???.net(521)
トランザクションのブロックの中でクローズしてるからアボート扱いになってない?
ってそれ以前にUpdateが0返してんのか。
こっちで追試するには情報が足りないな、自分で埋めてもいけどめんどい。

454
NAME IS NULL[sage]   投稿日:2015/06/28 20:01:32  ID:???.net(521)
アンドロイドのSQLiteで6000件のデータ取るのに3秒かかるのって仕方ないですか
SQLかなんかおかしいですか

455
NAME IS NULL[sage]   投稿日:2015/06/28 20:30:20  ID:???.net(521)
クエリがわからなくちゃ回答のしようが無い

456
NAME IS NULL[sage]   投稿日:2015/06/28 20:57:16  ID:???.net(521)
あるテーブルの全データ取得のクエリならどうですか
1テーブルはLONG5個INT5個程度の小さいものです
3秒はかかりすぎな気がしますが
コメント1件

457
NAME IS NULL[sage]   投稿日:2015/06/29 22:28:26  ID:???.net(521)
実際に再現する、最小限のサンプル出したほうが早いと思うの

458
NAME IS NULL[sage]   投稿日:2015/06/29 23:21:42  ID:???.net(521)
6,000件のレンダリングに 3秒かかってるってオチじゃないよな?
コメント1件

459
NAME IS NULL[sage]   投稿日:2015/06/30 01:23:41  ID:???.net(521)
Rails あるあるだな。

460
NAME IS NULL[sage]   投稿日:2015/07/04 00:01:09  ID:???.net(521)
>456
>458これじゃね。

461
NAME IS NULL[]   投稿日:2015/07/05 20:12:39  ID:TKPBzH/E.net
SQLiteはそれ自身はセキュアじゃないし更新処理に弱いって聞いたけど実際のところどうなん?

462
NAME IS NULL[sage]   投稿日:2015/07/06 12:17:29  ID:???.net(521)
弱い を論理的にどうぞ

463
NAME IS NULL[sage]   投稿日:2015/07/07 08:33:31  ID:???.net(521)
SQLiteの欠点なんてネットにいくらでも情報が出てるだろ
少しは調べろっていう

464
NAME IS NULL[sage]   投稿日:2015/07/29 17:04:24  ID:???.net(521)
sqliteって正規表現検索が無いんだな。
コメント2件

465
NAME IS NULL[sage]   投稿日:2015/07/30 20:41:57  ID:???.net(521)
SQLite Release 3.8.11.1 On 2015-07-29

466
NAME IS NULL[sage]   投稿日:2015/08/01 01:05:44  ID:???.net(521)
>464
正規表現使えるように改造すると良いよ。

467
NAME IS NULL[sage]   投稿日:2015/08/06 23:39:03  ID:???.net(521)
>464
公式のextentionのregexp.cを組み込めば対応できるけど、標準のsqlite.dllでは出来ない。
あと、regexp.cでも、一致確認はできるけど置換が出来ないのが残念

468
NAME IS NULL[]   投稿日:2015/08/07 14:04:24  ID:l/2WsGXW.net
データベース自体は単純な命令にのみ限定して
速度を上げるべき。データベースの出力結果を
phpやpythonの正規表現で処理すれば良いだけ。

469
NAME IS NULL[sage]   投稿日:2015/08/13 23:56:54  ID:???.net(521)
IN句に指定できるワード数は
Oracleは1000個、PostgreSQLは2000個、MySQLは上限なしとか決まっているようですが
SQLiteには制限ありますか
コメント1件

470
NAME IS NULL[sage]   投稿日:2015/08/15 22:45:27  ID:???.net(521)
>469
100万ワードのin句を持つSQLをプログラム生成して試した。
select id from testtable where id in (1,2,3,....,1000000)
エラーにはならなかったよ。

471
NAME IS NULL[sage]   投稿日:2015/08/16 00:00:18  ID:???.net(521)
速度わ?
コメント1件

472
NAME IS NULL[sage]   投稿日:2015/08/16 08:11:40  ID:???.net(521)
>471

(1) テーブル作成
create table testtable(
id integer not null default 0,
xname text not null default '',
constraint pk_testtable primary key (id)
)

(2) データ2件投入
insert into testtable(id, xname) values(1001, 'hello')
insert into testtable(id, xname) values(1002, 'world')

(3) SQL 生成 & 実行
select id, xname from testtable where id in (1,2,...,N)

生成した SQL を sqlite3_exec で実行させて戻ってくるまでの時間

N=10000 285.892ms
N=100000 3960.603ms
N=1000000 43520.460ms

sqlite3 version 3.8.3.1
OS=Windows7 pro
CPU=Ivy Bridge 3770無印
コメント2件

473
NAME IS NULL[sage]   投稿日:2015/08/16 17:09:06  ID:???.net(521)
>472
一箇所訂正

× 生成した SQL を sqlite3_exec で実行させて戻ってくるまでの時間
○ 生成した SQL を sqlite3_prepare_v2 で実行させて戻ってくるまでの時間

474
NAME IS NULL[sage]   投稿日:2015/08/16 18:14:20  ID:???.net(521)
速度の話が出ているので横から失礼します
Excelに接続出来る事を知りいろいろ調べているのですがリアルタイムに読み書きする時の速度はどんな感じでしょうか?

475
NAME IS NULL[sage]   投稿日:2015/08/16 21:01:55  ID:???.net(521)
そんなもんテーブル構造にもアクセス方法にもデータ量にもよりけりだから、自分で測った方が早いと思う。

476
NAME IS NULL[sage]   投稿日:2015/08/17 00:05:25  ID:???.net(521)
ん?
prepareではクエリの解釈だけで実行はされなかったと思うが

477
NAME IS NULL[sage]   投稿日:2015/08/17 16:29:35  ID:???.net(521)
>472
エラーにはならないのは事実みたいね。
ほんとうの実測値が知りたいけど、後は各自がやるってことで。

478
NAME IS NULL[sage]   投稿日:2015/08/19 03:06:27  ID:???.net(521)
468 ですが、
Visual studio の IDE の中でテストプログラムを走らせると in 句 100 万件
のときにすごく時間がかかったのですが、cmd.exe から普通に起動してテスト
すると、1秒もかからなかったです。大変申し訳ありません。

ソース
http://www.rupan.net/uploader/download/1439920727.zip
dlpass:sqlite3

結果
SQLite3 version 3.8.11.1

#open: 1 ms

N=10000
#prepare: 8 ms
#step 1st: 6 ms
#step: 0 ms
#step: 1 ms
#finalize: 0 ms

N=100000
#prepare: 39 ms
#step 1st: 25 ms
#step: 0 ms
#step: 7 ms
#finalize: 0 ms

N=1000000
#prepare: 544 ms
#step 1st: 632 ms
#step: 0 ms
#step: 1 ms
#finalize: 56 ms

#close: 0 ms

479
NAME IS NULL[sage]   投稿日:2015/08/30 07:03:03  ID:???.net(521)
例えば2chのような巨大掲示板を運営するとして
ログにSQLite使うとします
普通は全体でDBを1つ用意するだけだと思いますが
DBってのは肥大するとSELECTも遅くなると思うので
お手軽SQLiteに限っては1スレッド1DBみたいなのでもいいんじゃないかと思ってるのですが
どうでしょう?やっぱおかしいですかね?
コメント2件

480
NAME IS NULL[sage]   投稿日:2015/08/30 08:31:17  ID:???.net(521)
>479
基本的におかしい
サーバーはクライアントからのリクエストを見て
・url から該当のスレのデータベースを取得
・そのデータベースを開く
の操作が必要になる
もちろんレスのキャッシュや接続プールとかで高速化を図ればいいんだけど、なにか独自の技術でもない限りデータベース側に任せた方がいい
ビックデータ流行の時代なので巨大データに対する技術は色々開発されてる

481
NAME IS NULL[sage]   投稿日:2015/08/31 09:03:32  ID:???.net(521)
>479
串刺しで検索しないなら

482
NAME IS NULL[sage]   投稿日:2015/08/31 11:58:52  ID:???.net(521)
こんな感じでフォームのテキストボックスにログ流して表示しているのですが
このログをDBに入れるにはどうinsert文を書けばいいでしょうか?

String tickString = String.Format("{0},{1:HH:mm:ss},{2},{3}\r\n",
args.Instrument, args.Tick.DateTime, args.Tick.Price, args.Tick.Volume);

textBoxLog.Text = tickString + textBoxLog.Text;
}

483
NAME IS NULL[sage]   投稿日:2015/08/31 13:57:14  ID:???.net(521)
普通に
INSERT INTO log (time, message) VALUES (CURRENT_TIMESTAMP, 'message')
でしょ、
C#でどうすればいいかという話?
それともエスケープ?
コメント1件

484
NAME IS NULL[sage]   投稿日:2015/08/31 15:37:16  ID:???.net(521)
>483
すみません説明不足でした
流れてきた内容をログの先頭に挿入しているだけの処理なのですが、最後の行をinsert文に変えるだけでいけるのでしょうか?
DBを初めて組み込むのでよくわかりません
出来ればc#でお願いします

485
NAME IS NULL[sage]   投稿日:2015/08/31 16:36:56  ID:???.net(521)
C#なら、、NuGetでSystem.Data.SQLiteを組み込んでると仮定して
using (var conn = new SQLiteConnection(@"Data Source=c:\temp\log.txt"))
{
 conn.Open();
  using (SQLiteCommand command = conn.CreateCommand())
  {
   command.CommandText = "INSERT INTO log (message) VALUES (?)";
   var param1 = new System.Data.SQLite.SQLiteParameter()
   {
    DbType = System.Data.DbType.String,
    Value = tickString,
   };
   command.Parameters.Add(param1);
   command.Prepare();
   command.ExecuteNonQuery();
  }
 conn.Close();
}
こんな感じ?
そもそもCREATE TABLEしとかなきゃだし、
RDBMSはINSERT順に意味は無いので、別のソート順を決めないとならんけど
現在時刻のカラム追加かオートインクリメントで数字入れとかね
コメント1件

486
NAME IS NULL[sage]   投稿日:2015/08/31 17:13:50  ID:???.net(521)
>485
お忙しい中、ありがとうございます
勉強になります

487
NAME IS NULL[sage]   投稿日:2015/09/17 20:26:05  ID:KvCkeKl9C
SQLiteでVIEWとテーブルを結合したら、列名が変わってしまいました。

select A.MainId,A.Name,B.Yuubin from MainTable as A
left join JuusyoList as B on B.MainId = A.MainID

のようなSQLとして

AとBがテーブル同士の場合は列名がそのままでるのですが、
AをVIEW、Bがテーブルで結合したら、A.MainId A.Name のような列名に
なってしまいました。

もとの列名にする方法はないでしょうか。

TkSQLiteで同様にSQL文を実行しても同じ結果なので仕様なのでしょうか。

488
NAME IS NULL[sage]   投稿日:2015/10/16 00:45:05  ID:???.net(521)
SQLite Release 3.9.0 On 2015-10-14

Version 3.9.0 adds a number of new features, including:
・Built-in JSON functions
・Table-valued functions
・Indexes on expressions

https://www.sqlite.org/releaselog/3_9_0.html

だってさ。

489
NAME IS NULL[sage]   投稿日:2015/10/16 02:17:58  ID:???.net(521)
なんかNoSQLっぽくなったな

490
NAME IS NULL[sage]   投稿日:2015/10/17 06:46:45  ID:???.net(521)
3.9.1 release

491
NAME IS NULL[sage]   投稿日:2015/10/17 11:02:12  ID:???.net(521)
JSON対応って、テーブルをJSONでダンプできるとかそういう機能じゃないんだな。
使いどころがよくわからん。

492
NAME IS NULL[]   投稿日:2015/11/01 02:50:40  ID:Iaqw8dbT.net
sqlite4ってどうなの?

493
NAME IS NULL[sage]   投稿日:2016/01/07 23:57:16  ID:???.net(521)
SQLite Release 3.10.0 On 2016-01-06
http://www.sqlite.org/releaselog/3_10_0.html

494
NAME IS NULL[sage]   投稿日:2016/01/14 23:35:35  ID:???.net(521)
SQLite Release 3.10.1 On 2016-01-14
https://www.sqlite.org/releaselog/3_10_1.html

New feature:
Add the SQLITE_FCNTL_JOURNAL_POINTER file control.

Bug fix:
Fix a 16-month-old bug in the query planner that could generate incorrect results
when a scalar subquery attempts to use the block sorting optimization.

495
NAME IS NULL[]   投稿日:2016/01/24 10:39:11  ID:sOgNYorS.net
SQLite4はどうなっとんのや?

496
NAME IS NULL[]   投稿日:2016/01/24 21:47:10  ID:LKzcjvMc.net
マ イ ン ド コ ン ト ロ ー ル の手法

・沢山の人が、偏った意見を一貫して支持する
 偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法

・不利な質問をさせなくしたり、不利な質問には答えない、スルーする
 誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法

偏った思想や考え方に染まっていたり、常識が通じない人間は、頭が悪いフリをしているカルト工作員の可能性が高い

靖 国 参 拝、皇 族、国 旗 国 歌、神 社 神 道を嫌う カ ル ト

10人に一人は カ ル ト か 外 国 人

「ガ ス ラ イ テ ィ ン グ」 で 検 索 を !

497
NAME IS NULL[sage]   投稿日:2016/01/30 12:28:01  ID:???.net(521)
3.10.2(゚∀゚ 三 ゚∀゚)

498
NAME IS NULL[sage]   投稿日:2016/02/23 01:52:36  ID:???.net(521)
3.11
https://osdn.jp/magazine/16/02/19/163000
すごい丁寧な物言いで吹いた。

499
NAME IS NULL[sage]   投稿日:2016/03/02 19:20:58  ID:???.net(521)
桶屋が儲けた

500
NAME IS NULL[]   投稿日:2016/03/14 09:42:49  ID:UPQCYJfo.net
sqliteってファイル作成時にあらかじめ任意のサイズを確保させることできる?
例えば…なんだろう、仮想環境のディスク領域みたいに

501
NAME IS NULL[sage]   投稿日:2016/03/14 10:20:19  ID:???.net(521)
page_size(バイト) * max_page_count = 任意のサイズ
PRAGMA page_sizeでページサイズを確認してそれにあったmax_page_countを設定する
PRAGMA max_page_count=N
コメント2件

502
NAME IS NULL[sage]   投稿日:2016/03/14 12:07:43  ID:???.net(521)
>501
なるほどなるほど
教えてくれた単語で公式マニュアルもみてくるわサンキュー親父

503
NAME IS NULL[sage]   投稿日:2016/03/15 19:15:46  ID:???.net(521)
型無くて好き。

504
NAME IS NULL[sage]   投稿日:2016/03/15 20:04:07  ID:???.net(521)
一個のファイルで出来るのがいいね

505
NAME IS NULL[sage]   投稿日:2016/03/15 20:09:55  ID:???.net(521)
SQL使って抽出できるものの中では最速なのがいい

506
NAME IS NULL[sage]   投稿日:2016/03/19 22:04:24  ID:???.net(521)
real型のカラムをWHERE句で取得したいんですが取れてきません
LIKE句なら取れてきます。WHERE句で取得するにはどうすればいいでしょうか?
WHERE hogeID = '11111.11111'を
WHERE hogeID = cast(11111.11111 as REAL);
とかしてもダメでした

507
NAME IS NULL[sage]   投稿日:2016/03/19 22:34:14  ID:???.net(521)
ヒント:精度

508
NAME IS NULL[sage]   投稿日:2016/03/19 23:13:15  ID:???.net(521)
桁を落としてやってみよー

509
NAME IS NULL[sage]   投稿日:2016/03/19 23:38:29  ID:???.net(521)
ありがとうございます。やってみます

510
NAME IS NULL[sage]   投稿日:2016/03/25 21:16:01  ID:???.net(521)
前から気になってたんですが、
SQLiteってパーミッションの概念って無いんですか?
例えばcreateでSQLite用のファイル作成する時、
ディレクトリに書き込み権限がないと駄目とか。
コメント1件

511
NAME IS NULL[sage]   投稿日:2016/03/25 22:45:09  ID:???.net(521)
https://www.sqlite.org/serverless.html
With SQLite, the process that wants to access the database reads and writes directly from the database files on disk.
There is no intermediary server process.
コメント1件

512
NAME IS NULL[sage]   投稿日:2016/03/26 07:56:25  ID:???.net(521)
>510
それってOSとかファイルシステムの話だろ

513
NAME IS NULL[sage]   投稿日:2016/03/26 11:28:20  ID:???.net(521)
そら書き込み権限の無いディレクトリにプログラムがどう頑張ったって・・・
データファイルとして、適当なディレクトリに置けばいい。

514
NAME IS NULL[sage]   投稿日:2016/03/26 18:01:41  ID:???.net(521)
>511-513
つまり、SQLite使う場合は、予め保存先のディレクトリのパーミッションに、
書き込み権限を与えて送って認識でOKですか?
MySQLなんかだとパーミッションの概念がありませんが、
SQLiteの場合は、CSVファイルの読み書きと同様、パーミッション指定が必要なんですね
コメント2件

515
NAME IS NULL[sage]   投稿日:2016/03/26 18:16:48  ID:???.net(521)
RDBMSじゃなくて、単なるライブラリであり、DB本体が単なるファイルですからね。
私はpostgreSQL派ですけど、SQLiteは単純に使えて、共存も出来るんで使ってます。

516
NAME IS NULL[sage]   投稿日:2016/03/26 20:51:35  ID:???.net(521)
>514
> MySQLなんかだとパーミッションの概念がありませんが、
あるだろ
ディフォルトだとインストーラーが適切に設定してる
他の場所にデータファイル置くなら同じように設定する必要があるよ
コメント1件

517
NAME IS NULL[sage]   投稿日:2016/03/26 22:01:39  ID:???.net(521)
事前にtouchとかで作っときゃディレクトリの書き込み権限いらん
もちろんtouchする時のアカウントが権限ないとダメだし
ファイル自身のパーミッションも必要だが

518
NAME IS NULL[sage]   投稿日:2016/03/27 11:50:19  ID:???.net(521)
>516
DBにはサーバがアクセスするからパーミッションとかを
>514レベルのユーザが認識することはほぼ最後までないと思う。

519
NAME IS NULL[sage]   投稿日:2016/03/27 15:21:22  ID:???.net(521)
まあSQLiteはDBアクセスするクライアントが直接DB操作するけど
MySQLはデーモンになってるからサーバープロセスを起動したユーザーの権限
もしくはchrootで移譲したユーザーの権限で動くからクライアントの実行ユーザーとは別物だわな

520
NAME IS NULL[]   投稿日:2016/03/30 23:56:31  ID:I9xFCFeI.net

521
NAME IS NULL[sage]   投稿日:2016/03/31 00:36:55  ID:???.net(521)
おお

522
NAME IS NULL[sage]   投稿日:2016/04/09 14:23:38  ID:???.net(521)
3.12.1

https://www.sqlite.org/releaselog/3_12_1.html

・Fix a boundary condition error introduced by version 3.12.0 that can result in a crash during heavy SAVEPOINT usage. Ticket 7f7f8026eda38.
・Fix views so that they inherit column datatypes from the table that they are defined against, when possible.
・Fix the query planner so that IS and IS NULL operators are able to drive an index on a LEFT OUTER JOIN.

523
NAME IS NULL[sage]   投稿日:2016/04/09 15:03:28  ID:???.net(521)
はや

524
NAME IS NULL[sage]   投稿日:2016/04/19 20:30:38  ID:???.net(521)
3.12.2

https://www.sqlite.org/releaselog/3_12_2.html

・Fix a backwards compatibility problem in version 3.12.0 and 3.12.1:
 Columns declared as "INTEGER" PRIMARY KEY (with quotes around the datatype keyword) where not being recognized as an INTEGER PRIMARY KEY, which resulted in an incompatible database file. Ticket 7d7525cb01b68
・Fix a bug (present since version 3.9.0) that can cause the DELETE operation to miss rows if PRAGMA reverse_unordered_selects is turned on. Ticket a306e56ff68b8fa5
・Fix a bug in the code generator that can causes incorrect results if two or more virtual tables are joined and the virtual table used in outer loop of the join has an IN operator constraint.
・Correctly interpret negative "PRAGMA cache_size" values when determining the cache size used for sorting large amounts of data.

525
NAME IS NULL[sage]   投稿日:2016/04/19 20:47:52  ID:???.net(521)
群発か

526
NAME IS NULL[sage]   投稿日:2016/04/25 01:32:55  ID:???.net(521)
エクセルから試行してるものですが
カラム50個程あるデータ(100万レコードくらい)の
selectで名前から参照のカラムを全部抜き出す事はできますか?
試したら名前しか出てこなくて困ってるんですが(ググっても同様な質問も見当たらず)

527
NAME IS NULL[sage]   投稿日:2016/04/25 09:04:07  ID:???.net(521)
エクセルからというのがよくわからんけど普通にできる
どうやったの?

528
NAME IS NULL[sage]   投稿日:2016/04/25 12:14:22  ID:???.net(521)
SQLiteForExcelってやつか

529
NAME IS NULL[sage]   投稿日:2016/04/26 21:54:12  ID:???.net(521)
localDBとどっちがいいの?
コメント1件

530
NAME IS NULL[sage]   投稿日:2016/04/26 22:13:28  ID:???.net(521)

531
NAME IS NULL[sage]   投稿日:2016/04/26 22:16:31  ID:???.net(521)
localDBって今知った。
ソースの公開されてる方がいいけどね。

532
NAME IS NULL[sage]   投稿日:2016/04/26 22:21:41  ID:???.net(521)
>530
理由を三つくらい教えてちょんまげ
コメント1件

533
NAME IS NULL[sage]   投稿日:2016/04/27 13:32:46  ID:???.net(521)
>532
・知名度
知名度とは検索しやすさであり情報量の多さ

・マルチプラットフォーム
Windowsだけじゃなくどこでもなんででも動く便利さ

・拡張性、ツールの充実
関数追加とか簡単だし編集ソフトいっぱいあるし
コメント1件

534
NAME IS NULL[sage]   投稿日:2016/04/27 14:24:48  ID:???.net(521)
ファイル一個で完結してるの一番凄いと思う。
物理的にもオブジェクト指向みたいな。

535
NAME IS NULL[sage]   投稿日:2016/04/27 19:00:55  ID:???.net(521)
>533
ローカルdb
よりいいな

536
NAME IS NULL[sage]   投稿日:2016/05/20 10:40:49  ID:???.net(521)

537
NAME IS NULL[sage]   投稿日:2016/05/20 10:42:09  ID:???.net(521)
ごめん間違えた。
3.13.0 です。

538
NAME IS NULL[sage]   投稿日:2016/07/02 15:49:26  ID:???.net(521)
SQLite4のサイトって、去年からずっと更新されてないけど、計画自体取りやめになったの?

539
NAME IS NULL[sage]   投稿日:2016/07/02 16:48:39  ID:???.net(521)
そんなぁ

540
NAME IS NULL[sage]   投稿日:2016/07/16 09:59:10  ID:???.net(521)
エクセルのシートがわりに使うとさいこー
コメント2件

541
NAME IS NULL[sage]   投稿日:2016/07/17 20:40:39  ID:???.net(521)
>540
だったらエクセルシート使う方が良いんじゃない?
コメント1件

542
NAME IS NULL[sage]   投稿日:2016/07/17 21:18:53  ID:???.net(521)
>540
どんな感じで使うのぉ?
コメント1件

543
NAME IS NULL[sage]   投稿日:2016/07/18 09:00:47  ID:???.net(521)
>542
>541
まずエクセルからデータを分離できるところ。
次にファイルでos問わず手軽に扱えるところ。

544
NAME IS NULL[sage]   投稿日:2016/07/18 18:17:44  ID:???.net(521)
エクセルの代わりにならないじゃん
コメント1件

545
NAME IS NULL[sage]   投稿日:2016/07/18 18:55:34  ID:???.net(521)
>544
エクセルの
「シート」
だよ。

546
NAME IS NULL[sage]   投稿日:2016/07/18 20:13:02  ID:???.net(521)
むぅわかったようなわからんような。
コメント1件

547
NAME IS NULL[sage]   投稿日:2016/07/18 20:20:58  ID:???.net(521)
>546
ちと誤解を生む表現だった。
シートをデータ置き場から解放したい
のが目的。
シートは主としてビューワーとして使う
コメント1件

548
NAME IS NULL[sage]   投稿日:2016/07/18 21:09:55  ID:???.net(521)
sqlite自体ライブラリとツール群だからな。
なんとなくわかった かなと。

549
NAME IS NULL[sage]   投稿日:2016/07/18 21:39:06  ID:???.net(521)
google spreadsheetでええやん

550
NAME IS NULL[sage]   投稿日:2016/07/18 21:44:29  ID:???.net(521)
>547
どのように使っているのか知りたい。
プログラム書いてるの?

551
NAME IS NULL[]   投稿日:2016/08/11 11:01:44  ID:k39hn/xF.net

552
NAME IS NULL[sage]   投稿日:2016/08/11 11:52:04  ID:???.net(521)
堅調にやってて乙

553
NAME IS NULL[]   投稿日:2016/09/14 19:59:55  ID:8llEaiLn.net
3.14.2

http://www.sqlite.org/releaselog/3_14_2.html

・Improved support for using the STDCALL calling convention in winsqlite3.dll.
・Fix the sqlite3_trace_v2() interface so that it is disabled if either the callback
 or the mask arguments are zero, in accordance with the documentation.
・Fix commenting errors and improve the comments generated on EXPLAIN listings
 when the -DSQLITE_ENABLE_EXPLAIN_COMMENTS compile-time option is used.
・Fix the ".read" command in the command-line shell so that it understands that its input is not interactive.
 Correct affinity computations for a SELECT on the RHS of an IN operator. Fix for ticket 199df4168c.
・The ORDER BY LIMIT optimization is not valid unless the inner-most IN operator loop is actually used by the query plan.
・Fix an internal code generator problem that was causing some DELETE operations to no-op.

554
NAME IS NULL[sage]   投稿日:2016/09/14 20:56:26  ID:???.net(521)
いいね

555
NAME IS NULL[sage]   投稿日:2016/10/02 17:48:55  ID:???.net(521)
手元のactiveperl5.24にDBD-mySQLが無かったがDBD-SQLiteがあったので使ってみた
個人で遊ぶなら快適だw

556
NAME IS NULL[sage]   投稿日:2016/10/02 18:13:40  ID:???.net(521)
一個のファイルですしぃ

557
NAME IS NULL[sage]   投稿日:2016/10/16 10:38:06  ID:???.net(521)
SQLite Release 3.15.0 On 2016-10-14
https://sqlite.org/releaselog/3_15_0.html

558
NAME IS NULL[sage]   投稿日:2016/10/16 11:14:51  ID:???.net(521)
がんばれ〜

559
NAME IS NULL[]   投稿日:2016/10/21 13:12:22  ID:kSyZhxSg.net
俺も最近使い始めた。
OS Linuxmint18MATEでな。
PostgresqlやmySQLと違い日本語が入力できるのがいい。
コメント2件

560
NAME IS NULL[sage]   投稿日:2016/10/21 14:19:33  ID:???.net(521)
>559
mysql日本語書けるやん?
コメント1件

561
NAME IS NULL[sage]   投稿日:2016/10/21 16:41:15  ID:???.net(521)
否、2箇所ばかりutf8に成らなかったからダメ

562
NAME IS NULL[]   投稿日:2016/10/21 22:56:16  ID:PJ+SYe3B.net
>560
OSはWindowsかね?

563
NAME IS NULL[sage]   投稿日:2016/10/22 00:17:48  ID:???.net(521)
>559
何か勘違いしているような。
PostgreSQLもMySQLも正しく日本語扱えるよ?

564
NAME IS NULL[sage]   投稿日:2016/10/22 00:26:10  ID:???.net(521)
どこで日本語で記述するかという事だな。

565
NAME IS NULL[]   投稿日:2016/10/22 07:50:31  ID:9o+gdt6B.net(2)
latinをutf8又は、sjisに変えなきゃいけないはずだが、Linux環境だと
うまく行かない。
なんのこと言ってるか解らないのなら黙ってろ。

566
NAME IS NULL[]   投稿日:2016/10/22 07:51:30  ID:9o+gdt6B.net(2)
SQLite使いやすいな
コメント1件

567
NAME IS NULL[sage]   投稿日:2016/10/30 20:20:37  ID:???.net(521)
>566
セキュリティもへったくれもないけどね。
コメント2件

568
NAME IS NULL[sage]   投稿日:2016/10/30 20:24:59  ID:???.net(521)
liteに使いましょう

569
NAME IS NULL[sage]   投稿日:2016/10/30 21:43:01  ID:???.net(521)
>567
実体は単一ファイルをなんだから適切にアクセス権を設定すればいいだけ

570
NAME IS NULL[sage]   投稿日:2016/10/30 21:44:43  ID:???.net(521)
ファイル自体も暗号は掛けられないんでしたっけ?

571
NAME IS NULL[]   投稿日:2016/10/31 06:17:38  ID:tmLBVYkg.net
DB Brouser for SQLight(データベースエンジンはSQliteでもSQlite3どちらでもok)
とAOOのBaseを使っている。
SQliteやSQlite3を生では使っていない。
生で使ってる人いるのかな?

572
NAME IS NULL[sage]   投稿日:2016/10/31 06:45:46  ID:???.net(521)
暗号化をサポートしてるファイルシステムなんていくらでもあるけど?

573
NAME IS NULL[sage]   投稿日:2016/10/31 10:58:18  ID:???.net(521)
ファイル盗まれた場合の話?

574
NAME IS NULL[sage]   投稿日:2016/11/21 21:08:34  ID:???.net(521)
winのコマンドラインでsqlite3.exe使ってるが、正規表現のdllどっかにない?
今使ってるのが、where regexp( string, pattern ) で使える奴なんだけど、SQL99標準の、 where string regexp pattern で使える奴がいい。
C++のコンパイルとかよう分からん。コンパイル済みの配布してるとこない?

575
NAME IS NULL[]   投稿日:2016/11/23 19:54:29  ID:DiJKqqHt.net
>567
OpenSSLライブラリで格納データ自体を暗号化すればセキュリティは無敵だよ

576
NAME IS NULL[sage]   投稿日:2016/11/23 21:24:50  ID:???.net(521)
とにかくファイル一個だし

577
NAME IS NULL[]   投稿日:2016/11/25 22:12:58  ID:r96MQ2A1.net
そもそもデータベースじゃなくてファイル検索ライブラリだし

578
NAME IS NULL[sage]   投稿日:2016/11/26 05:59:05  ID:???.net(521)
なんと的確なw

579
NAME IS NULL[]   投稿日:2016/12/02 15:54:32  ID:kHH37Mmu.net
>501を見つけてやってみたけどpragma設定は変わるがサイズが変わらん
公式のpragmaマニュアル読んだけど
これ上限設定するだけであらかじめ領域を確保するわけじゃないよな・・・
領域確保って無理なん?大量データ突っ込んでからdeleteするのはナシで

580
NAME IS NULL[sage]   投稿日:2016/12/03 11:28:12  ID:???.net(521)
そんなんsql1つで気軽にできたらHDD埋め尽くすウイルスみたいな振る舞いになっちゃうじゃないか

581
NAME IS NULL[]   投稿日:2017/01/03 22:16:52  ID:WLXYicRb.net
SQLite Release 3.16.0 On 2017-01-02
http://www.sqlite.org/releaselog/3_16_0.html

582
NAME IS NULL[]   投稿日:2017/01/04 07:34:11  ID:BY1GrNy1.net
SQLite Release 3.16.1 On 2017-01-03
https://sqlite.org/releaselog/3_16_1.html

583
NAME IS NULL[sage]   投稿日:2017/01/07 19:45:53  ID:???.net(521)
WHERE句について教えてください。

WHERE (A, B) IN ...

というようなことをしたいのですがSQL文法エラーになってしまいます。

WHERE句で、複数のカラムを括弧で括ることができないようなのです。

同等のことをするには、どのように書いたら良いのでしょうか?
コメント1件

584
NAME IS NULL[sage]   投稿日:2017/01/07 20:17:03  ID:???.net(521)
AとBを結合すりゃいいんじゃね
コメント2件

585
NAME IS NULL[sage]   投稿日:2017/01/07 21:29:52  ID:???.net(521)
>583
In の右辺が select なら exist に。そうでないなら素直に and と or 使いなされ。

>584
A にも B にも現れない文字を区切りに使えるならいいけど、単純に連結するのは NG

586
NAME IS NULL[sage]   投稿日:2017/01/07 22:57:02  ID:???.net(521)
SQLite Release 3.16.2 On 2017-01-06
http://www.sqlite.org/releaselog/3_16_2.html

587
NAME IS NULL[sage]   投稿日:2017/01/07 22:59:43  ID:???.net(521)
いっぱいでるぅ

588
NAME IS NULL[sage]   投稿日:2017/01/08 08:53:31  ID:???.net(521)
>584, 580
やり方色々あるんですね。
とても参考になりました。
ありがとうございます。


ところで、

>> In の右辺が select なら exist

って具体的にはWHERE句にどう書くのでしょうか?

589
NAME IS NULL[sage]   投稿日:2017/01/08 11:26:10  ID:???.net(521)
SELECT * FROM HOGE
WHERE EXISTS(SELECT * FROM FUGA WHERE HOGE.A = FUGA.A AND HOGE.B = FUGA.B)
コメント2件

590
NAME IS NULL[sage]   投稿日:2017/01/09 12:41:36  ID:???.net(521)
>589
コード、ありがとうございました!
さっそくやってみます。

591
NAME IS NULL[sage]   投稿日:2017/01/09 15:11:12  ID:???.net(521)
>589
横からですが、とん

592
NAME IS NULL[]   投稿日:2017/02/08 09:16:30  ID:ib/65+FH.net
explainの見方がよくわからないのですが、
よくわからない人は、どこ見てそれがいいSQLであると判断すればいいですか?
ステップ(addr)の数が少なければ少ないほどいいってことでしょうか?
アプリケーションから実行速度を測る事はできるのですが、
純粋なSQLの実行速度を知りたいのですが、何か方法ありますか?

593
NAME IS NULL[sage]   投稿日:2017/02/08 12:43:05  ID:???.net(521)
複数行insertでprepared statementを使おうとしたら999制限に引っかかって挿入出来ません
何か良い解決策はありませんか?

594
NAME IS NULL[sage]   投稿日:2017/02/08 14:08:11  ID:???.net(521)
SQLITE_LIMIT_VARIABLE_NUMBER 変更するとか?

595
NAME IS NULL[]   投稿日:2017/02/09 19:02:21  ID:7X6c6aZo.net

596
NAME IS NULL[]   投稿日:2017/02/14 02:29:06  ID:lj49aSQw.net

597
NAME IS NULL[sage]   投稿日:2017/03/18 06:19:56  ID:???.net(521)
SQLiteに保存する文字コードは、UTF-8が基本ですか?
SJISを保存すると問題おきますでしょうか?
コメント2件

598
NAME IS NULL[sage]   投稿日:2017/03/18 09:45:20  ID:???.net(521)
>597
utf sjisも
はい

599
NAME IS NULL[sage]   投稿日:2017/04/11 17:38:40  ID:???.net(521)
SQLiteにSJISで保存すると何か問題が起きるんですか?
ホントなら具体例を教えてください。

600
NAME IS NULL[sage]   投稿日:2017/05/23 22:36:11

601
NAME IS NULL[sage]   投稿日:2017/05/24 07:42:43
>597
DBのエンコーディングがutf8かutf16ってだけで
同じテーブルに別々の文字コード入れようがsjisで格納しようが別に不具合は起きない
当然そのままだと文字化けを起こす可能性があるが
それをどうするかはアプリケーション側の問題

602
17/05/24(水) 21:23:46.06 ID:???.net[ >>601<]   投稿日:0000/00/00 00:00:00

603
NAME IS NULL[sage]   投稿日:2017/05/25 10:39:50
どのDBもクライアントのエンコーディングは意識しないとだけど
それはDBのエンコーディングとは別の話

604
リ) 18:32:52.30 ID:???.net[ >>603<]   投稿日:0000/00/00 00:00:00

605
NAME IS NULL[sage]   投稿日:2017/05/25 18:44:27  ID:???.net(521)
うーん、、そのつもりで答えたんだけどな
クライアントの環境によるだろうけど、固定文字コードかロケールで切り替えるようになってるはずで
そのコードに沿ってないとSQL解釈も期待どおりにならない可能性はあるね

606
NAME IS NULL[sage]   投稿日:2017/05/25 18:47:20  ID:???.net(521)
ちなみにクライアント側が文字コードあってれば
サーバの文字コードに変換するのはクライアントの役目
通常サーバ側の文字コードはクライアントから切り替えられるようになってるので問題ないが
SQLiteの場合サーバ側の処理もクライアントがやるからそれだけ合わせとけばいいかと

607
NAME IS NULL[]   投稿日:2017/05/26 08:02:08  ID:a747thsW.net

608
NAME IS NULL[]   投稿日:2017/06/09 02:35:11  ID:kmOrKnhg.net

609
NAME IS NULL[]   投稿日:2017/06/09 19:27:52  ID:HI+OVZBi.net
日本と海外のユーチューバーは収入の仕組みが違う?!どっちが儲かるか?
http://youtube-youtuber.com/360.html

日本の従来型のユーチューバーは、広告収入をメインの収入源としています
1.動画にのせる広告(動画広告+画像広告)からの報酬や
2.スポンサー収入(企業からの依頼を受けて商品を紹介)

海外のユーチューバーの傾向として、広告収入ではなく、自分のビジネスを
メインにすることによって広告収入を遥かに超える収入を叩き出しています。
例えば、beauty guru(美のカリスマ)と謳われる、ユーチューバーのミシェル・ファンは
広告収入は1800万得ていますが・・他方で美容化粧品会社Ipsyを立ち上げて、
年収1億ドル(約110億円)を売り上げました。
彼女は「メイクのチュートリアル動画」を投稿していますが、動画の中で自分の会社の商品を
使っているんです。
そしてその中で使った商品を、online shopで買える仕組みにしています。
他人の商品を紹介して、そこから「おこぼれ」を貰うより、自分の商品を売った方が
遥かに儲かりますからね。

リンジー・スターリングは踊りながら、バイオリンを演奏する、アーティストですが・・・
彼女の場合も、あくまでも動画を投稿するのは、自分のビジネスである、
ツアーチケットやアルバムの販売のためなのです。

610
NAME IS NULL[sage]   投稿日:2017/06/18 17:51:34  ID:???.net(521)
ついにV4が来てしまったようだな。
これでDB界のパワーバランスが変わる。
コメント1件

611
NAME IS NULL[sage]   投稿日:2017/06/18 19:16:36  ID:???.net(521)
え?
まだ3.19じゃないの?

612
NAME IS NULL[sage]   投稿日:2017/06/18 21:32:39  ID:???.net(521)
https://sqlite.org/src4/doc/trunk/www/index.wiki
まだ作業中なのかな。でもじきに出るだろう

613
NAME IS NULL[sage]   投稿日:2017/06/18 22:08:31  ID:???.net(521)
(゚∀゚ 三 ゚∀゚)、

614
NAME IS NULL[]   投稿日:2017/06/21 22:57:56  ID:4A99RJhE.net
>610
おぉ!

615
NAME IS NULL[sage]   投稿日:2017/06/22 04:27:42  ID:???.net(521)
よしオラクルを空売りしよう!

616
NAME IS NULL[sage]   投稿日:2017/06/22 23:52:30  ID:???.net(521)
4だとZIPVFSが無償で使えたりしないかなw

617
NAME IS NULL[sage]   投稿日:2017/06/23 20:53:47  ID:???.net(521)
numeric 型が気になるなぁ

618
NAME IS NULL[sage]   投稿日:2017/06/26 05:02:46  ID:???.net(521)
おぉ!
更新情報
・スレッド一覧ページで過去ログのタイトル検索・一覧表示ができるようになりました(2016/1/20)
NGワード登録
登録する
スレッド内検索

データベース板 タイトル検索

このスレッドが人気です(実況系)
日本人の3割しか知らないこと くりぃむしちゅーのハナタカ!優越館★1 (624)テレ朝実況
実況 ◆ フジテレビ 83777 (905)フジ実況
実況 ◆ 日本テレビ 55669 (786)NTV実況
実況 ◆ TBSテレビ 27987 (910)TBS実況
実況 ◆ テレビ朝日 48399 盗んだレコードで走り出す (346)テレ朝実況
NHK総合を常に実況し続けるスレ 135331 加計学園違法献金 (841)NHK実況
プレバト才能ランキング【梅沢vs特待生8人★「天才」光宗薫が登場】★1 (388)TBS実況
得する人損する人夏の得ワザSP★1 (201)NTV実況
このスレッドが人気です(ニュース系)
スマホ販売世界3位の通信機器大手ファーウェイ、日本に大型工場新設・・・中国企業が日本に本格的な工場を新設するのは初めて★3 (872)ニュー速+
【東京】女児に股間をお盆で隠しただけの「裸芸」強要、ビデオで撮影した男性教諭 懲戒免職 (290)ニュー速+
【社会】車いす客にタラップはい上がらせる ANA傘下のLCCバニラ・エアが謝罪 ★27 (335)ニュー速+
文春の「自民下村が加計から献金」は誤報 ガセ情報を流したのは平愛梨の弟、都民ファースト平慶翔★3 (1005)ニュー速
youtubeでデザートイーグルを撃つ様子を中継していたカップル、分厚い百科事典なら貫通しないと思い胸に当てた男に発砲→貫通し死亡★2 (1003)ニュー速+
文春の「自民下村が加計から献金」は誤報 ガセ情報を流したのは平愛梨の弟、都民ファースト平慶翔★4 (109)ニュー速
【大阪】大阪市長 「ヘイトに実名開示義務」 条例改正提案へ★6 (502)ニュー速+
【社会】車いす客にタラップはい上がらせる ANA傘下のLCCバニラ・エアが謝罪 ★26 (1006)ニュー速+
データベース板の人気スレ
Oracle 質問総合スレ12 (918)
SQL初心者質問スレ (899)
PostgreSQL Part.11 (362)
Oracle 質問総合スレ9 (986)
MySQL 総合 Part24 (1010)
Oracle 質問総合スレ10 (1014)
SQL質疑応答スレ 17問目 (340)
♪つっかもうぜ!DB! (85)
SQL質疑応答スレ 15問目 (1013)
MySQL 総合 Part25 (961)
Microsoft SQL Server 総合スレ 11 (434)
SQLite Part.10 (618)
はじまりです。 (584)
XML統合スレッド (397)
【論理ファイル】AS400DB【キューリー】 (262)
RDBMS比較総合スレ 【サーバ】 (115)
このサイトについて
このサイトは2ちゃんねるからデータを取得し、表示するサービスです。
画像のインライン表示機能について
画像のURLの後ろにある[画像をインライン表示]をクリックすると、URLの下に表示します。
表示される画像は横幅100pxに縮小されていて、クリックすると原寸で表示します。
このサイトの特徴
1)スレッド内検索ができます
2)レス(「>>1」など)のポップアップができます
3)不適切な言葉を含む投稿を表示しません
4)ページ内で画像を直接表示できます
5)2ch他スレッドへのリンクはタイトル・板名つきでリンクします
6)すっきりとしたデザインで表示します
7)最新スレや前スレをチェック・一覧表示します
8)NGワード機能の搭載でイヤな言葉が目に入りません
9)荒らしを自動チェックします
10)スレッド内・同一IDの書き込みだけ表示できます
11)レスの返事をレスされた発言の下に表示する「まとめビュー」が利用できます
12)シリーズ化したスレッドの一覧を表示します
13)最新のスレッドがある場合はお知らせします
削除について
こちらをご覧ください
機能要望について
現在機能要望受付中です。
問い合わせについて
こちらのページからどうぞ
広告


首都圏の方、ソフトバンク光オススメですよ


このサイトは2ch.scからデータを取得・表示しています。削除などについてはこちらをご覧ください。 アクセスモード:差分取得 - 新着書き込みなし(304)