組み込み型データベース 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
SQLite Part.10
レス数が1000を超えています。これ以上書き込みはできません。
2012/08/16(木) 21:54:16.20ID:???
2012/08/16(木) 21:54:47.06ID:???
【過去スレッド】
・sqliteを語るスレ
http://pc8.2ch.net/test/read.cgi/db/1056956494/
・SQLite 2
http://pc8.2ch.net/test/read.cgi/db/1140827718/
・SQLite 3
http://pc8.2ch.net/test/read.cgi/db/1152367932/
・SQLite 4
http://pc11.2ch.net/test/read.cgi/db/1162621344/
・SQLite 5
http://pc11.2ch.net/test/read.cgi/db/1176223619/
・SQLite 6
http://pc11.2ch.net/test/read.cgi/db/1193118037/
・SQLite 7
http://pc11.2ch.net/test/read.cgi/db/1220581676/
・SQLite 8
http://hibari.2ch.net/test/read.cgi/db/1250225486/
・SQLite 9
http://toro.2ch.net/test/read.cgi/db/1298737360/
・sqliteを語るスレ
http://pc8.2ch.net/test/read.cgi/db/1056956494/
・SQLite 2
http://pc8.2ch.net/test/read.cgi/db/1140827718/
・SQLite 3
http://pc8.2ch.net/test/read.cgi/db/1152367932/
・SQLite 4
http://pc11.2ch.net/test/read.cgi/db/1162621344/
・SQLite 5
http://pc11.2ch.net/test/read.cgi/db/1176223619/
・SQLite 6
http://pc11.2ch.net/test/read.cgi/db/1193118037/
・SQLite 7
http://pc11.2ch.net/test/read.cgi/db/1220581676/
・SQLite 8
http://hibari.2ch.net/test/read.cgi/db/1250225486/
・SQLite 9
http://toro.2ch.net/test/read.cgi/db/1298737360/
2012/08/16(木) 21:55:28.81ID:???
【ツール】
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/ ※ページ行方不明
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/ ※ページ行方不明
2012/08/16(木) 21:56:04.72ID:???
【ネタ】
・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%20MeCab.html
・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
・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%20MeCab.html
・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
2012/08/16(木) 21:56:41.67ID:???
【書籍】
・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
・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
2012/08/16(木) 21:56:54.46ID:???
テンプレここまで。
SQLiteスレもついにスレ番2桁目に突入です。
SQLiteスレもついにスレ番2桁目に突入です。
7NAME IS NULL
2012/08/17(金) 00:25:14.78ID:SazVH8Xb SQLiteでの同時処理について質問です。
あるテーブルで値を+1する処理を行っています。
UPDATE sample_table SET count=count+1 WHERE num = $num
処理が呼ばれるとsample_tableのcountが1増えます。
ですがこが同時に100回行っても100増えません。
ゆっくりと100回行うと100増えます。
おそらく前の処理をしている最終に読み取った値に+1をしているのでうまく増えていないということだと思うんですがどのようにすれば行った回数分countを増やせるでしょうか。
あるテーブルで値を+1する処理を行っています。
UPDATE sample_table SET count=count+1 WHERE num = $num
処理が呼ばれるとsample_tableのcountが1増えます。
ですがこが同時に100回行っても100増えません。
ゆっくりと100回行うと100増えます。
おそらく前の処理をしている最終に読み取った値に+1をしているのでうまく増えていないということだと思うんですがどのようにすれば行った回数分countを増やせるでしょうか。
2012/08/17(金) 18:35:23.58ID:???
>>7
前の処理のロック区間中にUPDATEしようとしてエラーになった分が更新されていない、とか
更新される前のcountの値を読み込んでインクリメントしたので前と同じ値を上書きしてしまっている、とか
いくつか原因は考えられるけど、情報が足りないので答えられないです。
・そもそも「同時処理」とは何を想定している?
・「同時に100回行う」ための手段(orコード)は?(SQL文だけ貼られても何がしたいのか分からない)
・「ゆっくり」とは何をどうしたの?
前の処理のロック区間中にUPDATEしようとしてエラーになった分が更新されていない、とか
更新される前のcountの値を読み込んでインクリメントしたので前と同じ値を上書きしてしまっている、とか
いくつか原因は考えられるけど、情報が足りないので答えられないです。
・そもそも「同時処理」とは何を想定している?
・「同時に100回行う」ための手段(orコード)は?(SQL文だけ貼られても何がしたいのか分からない)
・「ゆっくり」とは何をどうしたの?
97
2012/08/17(金) 20:59:58.15ID:5J6i+lyv >>8
回答ありがとうございます。
こちらのcount+1を行うものはWEBサイトにおいておりまして、特定のアクセスが行われると+1されるというものになります。
そのため不特定多数の場所からアクセスがある状況です。
アクセスカウンターのようなものをSQLite3で行っておりアクセス毎に+1されます。
同時処理についてですが、こちらはWEB上から処理を行うようになっております。
そのため複数の箇所から同時に多数の要求があった場合に処理が複数走ることを指します。
100回行うコードというのはありません。
テストのためにApacheのabというツールで10アクセス10スレッドで100のアクセスを行いました。
その際に+100ほど数値が増えないといけないのですが、実際には30程度しか増えておりませんでした。
ゆっくりというのは手動でアクセスを100回した場合のことを指しております。
F5でリロードを100回するのに近いと思います。
そのためゆっくりアクセスを行うというニュアンスで使用いたしました。
質問内容に不備があり申し訳ありませんでした。
対策が思いつかないのでアドバイスなどいただけると助かります。
回答ありがとうございます。
こちらのcount+1を行うものはWEBサイトにおいておりまして、特定のアクセスが行われると+1されるというものになります。
そのため不特定多数の場所からアクセスがある状況です。
アクセスカウンターのようなものをSQLite3で行っておりアクセス毎に+1されます。
同時処理についてですが、こちらはWEB上から処理を行うようになっております。
そのため複数の箇所から同時に多数の要求があった場合に処理が複数走ることを指します。
100回行うコードというのはありません。
テストのためにApacheのabというツールで10アクセス10スレッドで100のアクセスを行いました。
その際に+100ほど数値が増えないといけないのですが、実際には30程度しか増えておりませんでした。
ゆっくりというのは手動でアクセスを100回した場合のことを指しております。
F5でリロードを100回するのに近いと思います。
そのためゆっくりアクセスを行うというニュアンスで使用いたしました。
質問内容に不備があり申し訳ありませんでした。
対策が思いつかないのでアドバイスなどいただけると助かります。
2012/08/17(金) 22:09:50.59ID:???
ただの排他漏れだろ
アクセスカウンタ作ったことないの?
アクセスカウンタ作ったことないの?
2012/08/17(金) 22:25:47.30ID:???
127
2012/08/17(金) 23:00:01.29ID:SazVH8Xb2012/08/18(土) 01:21:41.82ID:???
>>12
SQLiteはそこら辺のDBMSと同じで別に何もしなくても「排他制御」はされるよ。
「100回のアクセス」とやらが成功しているのをどうやって確認したのか知らないけど、どう考えてもSQLクエリの実行が失敗してる。
見たところPHP+PDOって感じだけど(質問する時は言語名くらい書くこと)、count_db()が何だか分からないし、
prepareなのにプレースホルダ使ってないし、クエリの実行結果が成功かどうか確認しているようにも見えないし、
とりあえずPHPとPDOとデータベースを先に勉強した方が良いと思うよ。
あと、テーブル構造とか変数が何だか分からないから、クエリ自体があってるのかすら確認できないけど、まあそれはいいや。
SQLiteはそこら辺のDBMSと同じで別に何もしなくても「排他制御」はされるよ。
「100回のアクセス」とやらが成功しているのをどうやって確認したのか知らないけど、どう考えてもSQLクエリの実行が失敗してる。
見たところPHP+PDOって感じだけど(質問する時は言語名くらい書くこと)、count_db()が何だか分からないし、
prepareなのにプレースホルダ使ってないし、クエリの実行結果が成功かどうか確認しているようにも見えないし、
とりあえずPHPとPDOとデータベースを先に勉強した方が良いと思うよ。
あと、テーブル構造とか変数が何だか分からないから、クエリ自体があってるのかすら確認できないけど、まあそれはいいや。
147
2012/08/18(土) 01:37:10.10ID:ZAlPZ/Vl >>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とデータベースの勉強のためにまずは簡単なアクセスカウンターを作ってみようかと思って作成いたしました。
アクセスの成功に関しては負荷ツール側で全てのリクエストが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とデータベースの勉強のためにまずは簡単なアクセスカウンターを作ってみようかと思って作成いたしました。
2012/08/18(土) 02:45:18.67ID:???
>>14
ページアドレスがnum…。まあいいけど。
データベースにしてもPDO(と言うかPHP)にしても入門書は腐るほど出版されてるから、
とりあえず適当なのを買ってきて読めば一通りのことは出来るようになると思う。
あと、HTTPの仕組みとかも勉強した方がいいかもね。
SQLクエリの実行結果は [DBMS] → [PHP]
HTTPステータスは [PHP(と言うかWEBサーバ)]→[WEBブラウザ]
ちなみに、今回のは排他制御がかかってる時に同時にUPDATEしようとしてエラーになったらどうするか、の考慮が漏れてるのが問題。
おそらくロック待ちのタイムアウト値が設定されていないので、100回のうちエラーになった分はスルーされてる。
これだけレスしておいてあれだけど、微妙にスレ違い(今のところあんまりSQLite関係ない)だし、ヒントも書いたので、
あとはWEBプログラミング板の適当なスレに移動した方が幸せになれるかもしれない。勉強頑張れ。
ページアドレスがnum…。まあいいけど。
データベースにしてもPDO(と言うかPHP)にしても入門書は腐るほど出版されてるから、
とりあえず適当なのを買ってきて読めば一通りのことは出来るようになると思う。
あと、HTTPの仕組みとかも勉強した方がいいかもね。
SQLクエリの実行結果は [DBMS] → [PHP]
HTTPステータスは [PHP(と言うかWEBサーバ)]→[WEBブラウザ]
ちなみに、今回のは排他制御がかかってる時に同時にUPDATEしようとしてエラーになったらどうするか、の考慮が漏れてるのが問題。
おそらくロック待ちのタイムアウト値が設定されていないので、100回のうちエラーになった分はスルーされてる。
これだけレスしておいてあれだけど、微妙にスレ違い(今のところあんまりSQLite関係ない)だし、ヒントも書いたので、
あとはWEBプログラミング板の適当なスレに移動した方が幸せになれるかもしれない。勉強頑張れ。
167
2012/08/18(土) 10:12:45.63ID:ZAlPZ/Vl >>15
ありがとうございます。
排他中の制御に関してはまったく考慮しておりませんでした。
前の処理が終わるまで順番に待っているだろう
くらいの認識でした。
amazonあたりで評価の高そうな本をいくつか見てみたいと思います。
ありがとうございました。
ありがとうございます。
排他中の制御に関してはまったく考慮しておりませんでした。
前の処理が終わるまで順番に待っているだろう
くらいの認識でした。
amazonあたりで評価の高そうな本をいくつか見てみたいと思います。
ありがとうございました。
2012/08/19(日) 12:50:44.77ID:???
外部結合しているテーブルの行をを一度に消す方法はないのでしょうか?
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直後の単語ででてしまいます。
テーブルごとに削除するしかないのでしょうか…?
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直後の単語ででてしまいます。
テーブルごとに削除するしかないのでしょうか…?
2012/08/19(日) 12:58:41.83ID:???
DELETEはFROM一つしか書けないよ。JOINも当然書けない。
メインのテーブルのレコードを削除したとき必ず従属テーブルのレコードを削除するならトリガーに書きなよ。
メインのテーブルのレコードを削除したとき必ず従属テーブルのレコードを削除するならトリガーに書きなよ。
2012/08/19(日) 13:10:56.17ID:???
2012/09/01(土) 21:03:38.85ID:???
ばか
2012/09/02(日) 10:39:44.98ID:???
そんな事言うんじゃないよ
22NAME IS NULL
2012/09/04(火) 15:49:22.12ID:F14l33sJ sqliteのファイルを読み込む際に、そのファイルがsqliteのファイルであるかどうかを確認することはできますか?
sqlite以外のファイルを読み込んだ際に当たり前ですがエラーが出るのでそれに対処したいと思っています。
読み込むsqliteのファイル名に規則性がないので振り分けができないので、ファイルがsqliteファイルであるかどうか確認する方法があれば教えてもらえると助かります。
sqlite以外のファイルを読み込んだ際に当たり前ですがエラーが出るのでそれに対処したいと思っています。
読み込むsqliteのファイル名に規則性がないので振り分けができないので、ファイルがsqliteファイルであるかどうか確認する方法があれば教えてもらえると助かります。
2012/09/04(火) 18:33:24.81ID:???
3.7.14
2012/09/04(火) 18:48:09.39ID:???
2012/09/04(火) 19:16:39.20ID:???
>>24
ワロタ
確かに、エラーが出てるとわかってるならそれでいいじゃんとなるけどねw
事前に判断することができるか?という希望に答えるとすると、
C言語的にはファイルを開いて先頭16バイトバイナリ読込して、
"SQLite format 3\x00"とmemcmpして見れば一応わかる。
ただし、こんなものは偽装はできるし、このヘッダ部は正常でも、sqlite的に演算したら
ファイルが破損していた場合は結局エラーになるので価値は・・・疑問かな。
sqlite3_openv2がエラーを返すならそれで判断するのが良いよ。
ワロタ
確かに、エラーが出てるとわかってるならそれでいいじゃんとなるけどねw
事前に判断することができるか?という希望に答えるとすると、
C言語的にはファイルを開いて先頭16バイトバイナリ読込して、
"SQLite format 3\x00"とmemcmpして見れば一応わかる。
ただし、こんなものは偽装はできるし、このヘッダ部は正常でも、sqlite的に演算したら
ファイルが破損していた場合は結局エラーになるので価値は・・・疑問かな。
sqlite3_openv2がエラーを返すならそれで判断するのが良いよ。
2012/09/08(土) 22:56:07.38ID:???
27NAME IS NULL
2012/10/01(月) 13:04:19.93ID:Miyu12UY SQLite3使ってますがカラムの追加は最後尾にしか出来ないでしょうか?
| 1 | 2 | 3 | 4 |
とあった場合
| 1 | 2 | 3 | 3.5 | 4 |
としたいと思ってます。
| 1 | 2 | 3 | 4 |
とあった場合
| 1 | 2 | 3 | 3.5 | 4 |
としたいと思ってます。
2012/10/01(月) 18:41:19.91ID:???
>>27
http://www.sqlite.org/lang.html
http://www.sqlite.org/lang_altertable.html
http://www.sqlite.org/lang_select.html
質問する時は、何をするために、どういうSQL文を使って、結果がどうなって、それが目的とどう違ったか、くらいは書くこと。
じゃないと ドキュメント読んで下さい くらいしか答えられない。
http://www.sqlite.org/lang.html
http://www.sqlite.org/lang_altertable.html
http://www.sqlite.org/lang_select.html
質問する時は、何をするために、どういうSQL文を使って、結果がどうなって、それが目的とどう違ったか、くらいは書くこと。
じゃないと ドキュメント読んで下さい くらいしか答えられない。
2012/10/01(月) 20:48:13.89ID:???
2012/10/01(月) 21:13:45.41ID:???
そういう話なら、alter table文の最後に"before カラム名"とか"after カラム名"をつけると、テーブルをselect *で見た時に、
意図した場所に入ったように見せる(物理ディスク上はどうせ最後に追加される)ことができるRDBMSは結構あると思う。
けど、もしかしたらSQL標準には無かったかもしれない。
と言うか>>27の目的はselect文で順番を変えるだけで済むような。
意図した場所に入ったように見せる(物理ディスク上はどうせ最後に追加される)ことができるRDBMSは結構あると思う。
けど、もしかしたらSQL標準には無かったかもしれない。
と言うか>>27の目的はselect文で順番を変えるだけで済むような。
2012/10/02(火) 09:44:14.60ID:???
select *しか知らいないと予想してみる
32NAME IS NULL
2012/10/02(火) 10:27:01.41ID:mMJozPXq SQLite3はMySQLみたいに任意の場所に追加は出来なかったと思う
どうしても順序通りに作りたいなら
テーブル作り直して、Insertしかないと思う。
SQLite3で before カラム名 が出来るかどうかは試したこと無い。
どうしても順序通りに作りたいなら
テーブル作り直して、Insertしかないと思う。
SQLite3で before カラム名 が出来るかどうかは試したこと無い。
33NAME IS NULL
2012/10/02(火) 14:19:36.21ID:mMJozPXq SQLiteってあんまし触ったこと無かったけど
insert into test('test','test2') values ('1','2'),('3','4');
って出来ないの?
insert into test('test','test2') values ('1','2');
なら出来るんだけど、複数insertするとときの作法がよくわからない。
insert into test('test','test2') values ('1','2'),('3','4');
って出来ないの?
insert into test('test','test2') values ('1','2');
なら出来るんだけど、複数insertするとときの作法がよくわからない。
2012/10/02(火) 15:03:40.02ID:???
35NAME IS NULL
2012/10/02(火) 15:10:52.98ID:mMJozPXq なるほどね
さすがにLiteっていうだけあって色々制限あるね
というかこれからの質問は
ドキュメント読めばすぐに解決できるだろうが
http://www.sqlite.org/lang.html
のテンプレ張れば解決だな
さすがにLiteっていうだけあって色々制限あるね
というかこれからの質問は
ドキュメント読めばすぐに解決できるだろうが
http://www.sqlite.org/lang.html
のテンプレ張れば解決だな
2012/10/02(火) 19:11:09.49ID:???
と言うか最初からテンプレにある。>>1にアンカ張れば解決。
2012/10/02(火) 23:24:28.10ID:???
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
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
38NAME IS NULL
2012/10/03(水) 08:58:58.06ID:7gCK7EIm >>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', '');
こんな感じに書き直してから挿入するので手間がかかってしょうがない
これで挿入は出来るんだけどカラム増やすために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', '');
こんな感じに書き直してから挿入するので手間がかかってしょうがない
39NAME IS NULL
2012/10/03(水) 10:20:22.92ID:CNQU59aT hword カラムを not null default '' にして追加したあと
INSERT INTO jedict (jword, eword) values ('hon', 'book') , ('kon', 'navy'), ('mon', 'gate');
じゃダメ?
INSERT INTO jedict (jword, eword) values ('hon', 'book') , ('kon', 'navy'), ('mon', 'gate');
じゃダメ?
40NAME IS NULL
2012/10/03(水) 19:31:42.90ID:7gCK7EIm そういう手もあるか
そもそもSQLiteで移植ってみんなどうやってんの?
MySQLとかならphpyAdminとか使ってラクラク出来るけどSQLiteでそういうのあるの?
そもそもSQLiteで移植ってみんなどうやってんの?
MySQLとかならphpyAdminとか使ってラクラク出来るけどSQLiteでそういうのあるの?
2012/10/03(水) 19:47:28.65ID:???
4240
2012/10/03(水) 20:11:21.92ID:/OiJBnwO2012/10/03(水) 21:01:38.97ID:???
そもそも、中身を丸ごとコピーしないといけないような重要なDBを、
構造を変えて作り直す状況があんまり無いんじゃ…。
構造を変えて作り直す状況があんまり無いんじゃ…。
2012/10/03(水) 21:27:07.87ID:???
2012/10/03(水) 21:33:00.19ID:???
年中作り直すのは設計に問題がある。
カラムの追加ぐらいでいちいち作り直さない。
カラムの追加ぐらいでいちいち作り直さない。
4640
2012/10/03(水) 21:45:30.94ID:/OiJBnwO さすがにカラム追加するだけで作り直しとかはないけど
拡張して追加よりは作り直したほうがいい場合が年に1回くらいあったりしてたんで
みんなどうやってんのかと思って。
拡張して追加よりは作り直したほうがいい場合が年に1回くらいあったりしてたんで
みんなどうやってんのかと思って。
2012/10/03(水) 21:53:02.00ID:???
年中作りなおすなんて書いてないだろ。
質問者は、作りなおすハメになったのが設計の甘さかどうかなどは問わず、
「みんな、どうするのかな?」って軽いつもりで聞いてるんだろ。
エラソーに設計に問題がーとか言ってるのは意図を汲めない馬鹿丸出しの発言だろ。
SE/PGだけが業務でコンピュータを使いう時代じゃないんだ。
少しは考えろよ。
質問者は、作りなおすハメになったのが設計の甘さかどうかなどは問わず、
「みんな、どうするのかな?」って軽いつもりで聞いてるんだろ。
エラソーに設計に問題がーとか言ってるのは意図を汲めない馬鹿丸出しの発言だろ。
SE/PGだけが業務でコンピュータを使いう時代じゃないんだ。
少しは考えろよ。
2012/10/03(水) 21:55:52.76ID:???
>>47
訂正、業務かどうかも前提とすべきではなかったな。
訂正、業務かどうかも前提とすべきではなかったな。
2012/10/03(水) 22:44:52.67ID:???
「作り直す時のテクニックをみんなで考えよう」じゃなくて「みんなどうやってんの?」だからなー。
業務だったらそんなマズい設計にはならないし、趣味だったら入れなおすほどのデータなんて扱わない人が大半だろうから、
質問者へのレスとしては間違ってないと思うぞ。年中云々は知らんけど。
仮に前者を問いかけたつもりなんだとしたら聞き方を間違えてる。
業務だったらそんなマズい設計にはならないし、趣味だったら入れなおすほどのデータなんて扱わない人が大半だろうから、
質問者へのレスとしては間違ってないと思うぞ。年中云々は知らんけど。
仮に前者を問いかけたつもりなんだとしたら聞き方を間違えてる。
50sage
2012/10/04(木) 10:04:32.41ID:??? phpMyadminみたいにWEB上でお手軽に出来るのがあればいちいちスクリプト組んだりコマンド流したりやんなくていいんだろうけどね
俺はデータをどっかに持ってく場合は
各値を'で囲んで取り出して1レコードを()でくくる感じで吸い出す
('a', 'b', 'c')
こんな感じ。
あとは引越し先にinsertで突っ込む。
1回だけ構造が違うところに突っ込むことがあったけど、そんときは
('a', 'b', '', 'c')
って感じにして対応した。
そんときは80万レコードあったので2個目の,のあとに'', を追加するスクリプト組んで書き換えた。
このやり方がスマートかどうかはわかんないけど、おれは引越しするときはいつもこんな感じでしてる。
俺はデータをどっかに持ってく場合は
各値を'で囲んで取り出して1レコードを()でくくる感じで吸い出す
('a', 'b', 'c')
こんな感じ。
あとは引越し先にinsertで突っ込む。
1回だけ構造が違うところに突っ込むことがあったけど、そんときは
('a', 'b', '', 'c')
って感じにして対応した。
そんときは80万レコードあったので2個目の,のあとに'', を追加するスクリプト組んで書き換えた。
このやり方がスマートかどうかはわかんないけど、おれは引越しするときはいつもこんな感じでしてる。
2012/10/04(木) 11:55:58.87ID:???
>>47
いったい誰と戦っているんだよ?空気脳さん.
いったい誰と戦っているんだよ?空気脳さん.
2012/10/07(日) 06:57:54.73ID:???
3.7.14.1
2012/10/09(火) 09:14:57.50ID:???
PHP上からSQLiteファイル内のデータを全部引っこ抜くようなのって無いんだっけ?
全レコードを>>50みたいな感じでおいらも引っこ抜いてるんだけど。
全レコードを>>50みたいな感じでおいらも引っこ抜いてるんだけど。
2012/10/14(日) 21:06:47.63ID:???
keyとvalueしかない構造だから悩まない
2012/10/14(日) 21:10:10.22ID:???
突然どうした?
2012/10/15(月) 10:31:13.09ID:???
追加とか変更とかは適当にコマンド流すけど
何か変更することあればFirefoxのSQLiteManagerってやつでいじってる
それ以上のことやろうと思うならそもそもSQLiteとか使わずMySQLとか使ってるしな
何か変更することあればFirefoxのSQLiteManagerってやつでいじってる
それ以上のことやろうと思うならそもそもSQLiteとか使わずMySQLとか使ってるしな
2012/10/23(火) 19:10:42.58ID:???
だからどうした?
2012/10/25(木) 17:03:37.52ID:???
以下の様なデータが格納されているデータベースで
1
1
1
2
2
3
3
3
4
とあるデータで各値が何回出てくるかカウントするってことは出来ますか?
1=3回
2=2回
3=3回
4=1回
みたいな検索結果を得たいと思ってます。
1
1
1
2
2
3
3
3
4
とあるデータで各値が何回出てくるかカウントするってことは出来ますか?
1=3回
2=2回
3=3回
4=1回
みたいな検索結果を得たいと思ってます。
2012/10/25(木) 18:29:44.22ID:???
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
カラム名 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
2012/10/25(木) 19:00:24.67ID:???
2012/10/25(木) 20:50:40.94ID:???
まさかこんなレベルでプログラマじゃないよなw
2012/10/25(木) 20:55:25.95ID:???
2012/10/26(金) 11:16:29.38ID:???
SQL知らなくても凄腕のプログラマもいるし
64NAME IS NULL
2012/11/02(金) 09:43:36.96ID:jaaHOkOC SQLiteって別ドメインであってもファイルにアクセスさえ出来れば、どこに置いてても操作できる?
2012/11/08(木) 09:55:55.42ID:???
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のファイルロックは信頼性か低いものもありオススメしない
5) Can multiple applications or multiple instances of the same application access a single database file at the same time?
抜粋意訳
NFSでマウントすればリモートアクセス出来るが、NFSのファイルロックは信頼性か低いものもありオススメしない
66NAME IS NULL
2012/11/08(木) 13:44:03.61ID:NYXd8Y9V SQLiteってクロスドメインとかいけるんだっけ
2012/11/12(月) 06:32:33.62ID:???
ファイルって複数のテーブル突っ込んでサイズデカくなっても
ひとつのテーブルへの速度に影響ないレベル?
ひとつのテーブルへの速度に影響ないレベル?
68NAME IS NULL
2012/11/12(月) 12:11:03.33ID:Gm0PmwJY 検索はそんなにかわんない
でもinsertとかupdateとかとかになると件数が10万件とかあると多少違ってくる
でもinsertとかupdateとかとかになると件数が10万件とかあると多少違ってくる
2012/11/12(月) 16:19:44.77ID:???
>>68
ありがと! 検索メインなのでまとめてみます!
ありがと! 検索メインなのでまとめてみます!
70NAME IS NULL
2012/11/13(火) 09:20:19.20ID:nIGWXzwT SQLiteってDB自体を暗号化って出来る?
2012/11/13(火) 11:25:00.29ID:???
SQLCipherってので暗号化できるみたいだけど半有料
2012/11/13(火) 14:18:38.88ID:???
書き出しと読み出しの部分のソスを書き換えて...
なんてのは出来そう?
なんてのは出来そう?
2012/11/13(火) 19:05:43.34ID:???
2012/11/13(火) 20:11:51.28ID:???
暗号化してインサートすればいいんじゃね?
2012/11/14(水) 13:58:27.32ID:???
2012/11/14(水) 14:22:17.72ID:???
そか IO部分はそのままという事ね。
すぐ 出来そうな感じはする。
出来ないけどorz
すぐ 出来そうな感じはする。
出来ないけどorz
2012/11/14(水) 15:01:33.23ID:???
2012/11/14(水) 17:19:18.60ID:???
I/Oはそのままってだけですよ。
2012/11/14(水) 19:33:12.83ID:???
>>77
検索キーも暗号化して検索すればいいんじゃね?
検索キーも暗号化して検索すればいいんじゃね?
2012/11/14(水) 19:42:07.35ID:???
部分文字列の比較とか難しくないか?
SUBSTRINGを使った場合位置が保証されるかとか。
SUBSTRINGを使った場合位置が保証されるかとか。
81NAME IS NULL
2012/11/16(金) 09:14:45.66ID:A4atXoQO そりゃrotみたいな単純なもんならいいけど、暗号化とは言えないし、そもそもそれだと部分一致とかマルチバイトとか面倒だろ
2012/11/16(金) 12:01:41.64ID:???
2012/11/16(金) 19:56:51.69ID:???
というか、一般にそれを暗号化とは言わない。
スレ違いなのでプログラム技術板あたりへどうぞ。
スレ違いなのでプログラム技術板あたりへどうぞ。
2012/11/18(日) 18:11:07.08ID:???
出来ないなら普通に出来ないって言えばいいのに
2012/11/18(日) 18:41:32.22ID:???
2012/11/18(日) 21:39:05.44ID:???
馬鹿には無理
2012/11/26(月) 18:23:42.86ID:???
sqliteってファイルベースのデータベースじゃん
その作成されるデータファイルのパーミッションやユーザ権限ってどうなってんの?
ユーザ毎に保存してくれる?
その作成されるデータファイルのパーミッションやユーザ権限ってどうなってんの?
ユーザ毎に保存してくれる?
2012/11/26(月) 19:29:19.32ID:???
最後の一行がよく分からないけど、実行したユーザの権限で作成されるよ。
2012/11/27(火) 06:20:08.86ID:???
ありがとー
2012/11/27(火) 21:34:23.08ID:???
sqlite3_close_v2 よいよね
2012/12/13(木) 00:45:58.76ID:???
3.7.15
2012/12/19(水) 16:46:02.85ID:???
SQLite3の1つのDBの中に、最大でいくつまでテーブルが作成できるのでしょうか?
2012/12/19(水) 20:57:45.96ID:???
2012/12/20(木) 20:48:57.64ID:???
3.7.15.1
2012/12/24(月) 08:40:38.60ID:???
.netなんですけど1つ目のテーブル読みながら2つめにコピーしようと
してるんですがdatabase file is lockedになります
mdbでやってた時は動いててそれをsqliteに置き換えただけなのですが
原因わかりますでしょうか
してるんですがdatabase file is lockedになります
mdbでやってた時は動いててそれをsqliteに置き換えただけなのですが
原因わかりますでしょうか
2012/12/24(月) 13:12:05.39ID:???
エスパーじゃないので分かりません
コードとかSQL文を貼ってみてはいかがでしょうか
コードとかSQL文を貼ってみてはいかがでしょうか
2012/12/25(火) 12:26:49.38ID:???
>>93
すみません
いろいろと調べているのですが見つかりません。
レコード数やフィールド数はビルドオプションで設定ができるのですが、テーブル数の設定は見つけることもできません。
定数ではなく、環境依存の値になってしまうのでしょうか?
すみません
いろいろと調べているのですが見つかりません。
レコード数やフィールド数はビルドオプションで設定ができるのですが、テーブル数の設定は見つけることもできません。
定数ではなく、環境依存の値になってしまうのでしょうか?
2012/12/28(金) 01:40:36.64ID:???
テーブル数の上限はたぶん未定義で環境(ディスク残量など)に依存。
ソースを見ても SQLITE_MAX_TABLES みたいなそれらしき記号定数なし。
ためしに機械的な名前(T_0, T_1, .. T_99999)でテーブルを10万個作成してみたが作れた。
ソースを見ても SQLITE_MAX_TABLES みたいなそれらしき記号定数なし。
ためしに機械的な名前(T_0, T_1, .. T_99999)でテーブルを10万個作成してみたが作れた。
2012/12/29(土) 00:55:06.02ID:???
予想だけど…。
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だと
書いてあるから、そっちの上限に先に到達するのかもしれない。
どっちにしても通常運用で支障が出ることはないくらい沢山作れそうだけど、
嘘をいっぱい書いてるかもしれないので詳しい人いたら解説お願いします。
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あぼーん
NGNGあぼーん
101NAME IS NULL
2013/01/07(月) 09:17:58.44ID:6FlDIcs/ 10万個もテーブル作れるならもう1データ1テーブルとかでもいいかと思ってしまうわ。
実際にはやんないけどSQLiteで扱う程度のデータならそこまで大規模になるなら別のDB使うだろうし。
それにしても暗号化ないのがちょっと不安になるわ。
案件にもよるんだろうけどみんな暗号化とかそういうの気にせず使ってるの?
実際にはやんないけどSQLiteで扱う程度のデータならそこまで大規模になるなら別のDB使うだろうし。
それにしても暗号化ないのがちょっと不安になるわ。
案件にもよるんだろうけどみんな暗号化とかそういうの気にせず使ってるの?
102NAME IS NULL
2013/01/07(月) 16:13:46.18ID:??? 他で暗号化してから格納したら?
103NAME IS NULL
2013/01/07(月) 16:58:50.08ID:??? 案件によるって書いてあるじゃんw
104NAME IS NULL
2013/01/07(月) 18:30:21.13ID:??? 気にせずと言うか、SQLiteを使う案件で、かつ暗号化が必要というのに今のところ出くわしたことが無い。
もしそういうのが来たら自前で暗号化して積むか、本家の暗号化オプション買うかの2択かなあ。
もしそういうのが来たら自前で暗号化して積むか、本家の暗号化オプション買うかの2択かなあ。
105NAME IS NULL
2013/01/07(月) 22:41:13.14ID:??? 自前で暗号化とかすると検索が面倒になる気がしないでもないけどSQLiteは文字通りLiteなんだからしょうがないか
106NAME IS NULL
2013/01/07(月) 23:02:36.88ID:??? と言うか先にデータを暗号化してからinsertするじゃ意味無いよね?
>>104はSEEを買うか、代わりにvfsで暗号化レイヤーを実装するか、って話だと思ってた…
>>104はSEEを買うか、代わりにvfsで暗号化レイヤーを実装するか、って話だと思ってた…
107NAME IS NULL
2013/01/08(火) 02:24:15.71ID:??? >>105
隠したい項目(暗号)をWHERE条件で検索できたら そもそも駄目じゃない?
隠したい項目(暗号)をWHERE条件で検索できたら そもそも駄目じゃない?
108あぼーん
NGNGあぼーん
109NAME IS NULL
2013/01/09(水) 10:37:48.50ID:PQochI3F 質問です。
全角半角大文字小文字の英数字が入り交じった項目があって、これらを全て同一視して検索する手段はありますでしょうか。
また、ひらがな、カタカナについても、おなじく同一視して検索する手段はありますでしょうか。
全角半角大文字小文字の英数字が入り交じった項目があって、これらを全て同一視して検索する手段はありますでしょうか。
また、ひらがな、カタカナについても、おなじく同一視して検索する手段はありますでしょうか。
110NAME IS NULL
2013/01/09(水) 18:22:22.81ID:??? 質問の意味が分からない
同一視って何?
同一視って何?
111NAME IS NULL
2013/01/09(水) 19:22:29.52ID:??? A=A=a=aとして扱いたいんでしょう。
112NAME IS NULL
2013/01/09(水) 21:05:14.98ID:??? select文を全角で入れたいのかもしれん。
113NAME IS NULL
2013/01/09(水) 21:13:02.83ID:??? 検索対象の文字列がカラム A に入っているとする。
まずカラム A の文字列の英小文字を英大文字に変換する。
上記で変換したデータの中の、半角英数記号カタカナを全角に変換する。
上記で変換したデータのカタカナを平仮名に変換する。
ここまで変換したら、検索専用カラム AA に格納しておく。
※必要であれば、ギリシア文字やロシア文字の小文字大文字変換も。
検索にあたっては、キーワードを上記ルールで変換してから、カラム AA
に対して where 条件を使う。
まずカラム A の文字列の英小文字を英大文字に変換する。
上記で変換したデータの中の、半角英数記号カタカナを全角に変換する。
上記で変換したデータのカタカナを平仮名に変換する。
ここまで変換したら、検索専用カラム AA に格納しておく。
※必要であれば、ギリシア文字やロシア文字の小文字大文字変換も。
検索にあたっては、キーワードを上記ルールで変換してから、カラム AA
に対して where 条件を使う。
114NAME IS NULL
2013/01/10(木) 09:16:20.51ID:??? >>109
オリジナルデータを入れとくカラム以外に英数を半角大文字とかに正規化して入れとくカラムを作って検索時はそれでやれば?
オリジナルデータを入れとくカラム以外に英数を半角大文字とかに正規化して入れとくカラムを作って検索時はそれでやれば?
115NAME IS NULL
2013/01/10(木) 12:23:53.94ID:??? やったことないけど、sqlite3_create_collation() 使って
比較関数登録して COLLATE 句ないし演算子使うってのは?
比較関数登録して COLLATE 句ないし演算子使うってのは?
116NAME IS NULL
2013/01/11(金) 10:25:12.80ID:??? WHERE UPPER('ABCdefgHIJKlmn') = 'ABCDEFGHIJKLMN'
117NAME IS NULL
2013/01/11(金) 23:26:07.46ID:??? 3.7.15.2
118NAME IS NULL
2013/01/14(月) 06:23:33.49ID:??? sqlite って zerofill できます?
119NAME IS NULL
2013/01/14(月) 23:31:22.64ID:??? なんで自分で試さないの?
120NAME IS NULL
2013/01/16(水) 07:12:21.08ID:??? Oracle の LPAD や RPAD 関数みたいな機能のこと?
121NAME IS NULL
2013/01/21(月) 04:30:51.79ID:??? さすがにSQLiteにquery_cache_sizeみたいなのはない?
122NAME IS NULL
2013/01/21(月) 21:05:39.97ID:??? さすがにドキュメントは読んだんだよね?
123NAME IS NULL
2013/01/22(火) 17:15:38.35ID:??? unionは500回までって制限があるんですね
unionで片っ端からつなげようという根性も正しくないんだろうけれど、
select結果は一回一回作業用のテーブルに全部突っ込むのがいいのかな
unionで片っ端からつなげようという根性も正しくないんだろうけれど、
select結果は一回一回作業用のテーブルに全部突っ込むのがいいのかな
124NAME IS NULL
2013/01/22(火) 19:06:50.56ID:???125NAME IS NULL
2013/01/23(水) 11:34:06.01ID:??? 500って何か間違ってるw
126NAME IS NULL
2013/01/23(水) 23:56:33.00ID:??? 最新バージョンをCygwinでC++から利用しているんですが
CSVファイルから1行ずつよみこんで
PreparedStatementを使用してINSERTする処理なんですが
いくつかの行で最終カラムに入れた値だけ文字化けする現象が発生しています。
bindする際の値をデバッグして確認したのですが、その際は特に文字化け等も
しておらず(改行コード等の余計なコードも入っていませんでした)
INSERTをすると文字化けしています。
なぜか最終カラムにだけ発生します。
TABLE作成時に最終カラムにダミーの項目を追加してINSERTを行うと
文字化けは発生しませんでした。
調べているのですが、原因が分からず困っています。
どなかかお分かりになるでしょうか?
CSVファイルから1行ずつよみこんで
PreparedStatementを使用してINSERTする処理なんですが
いくつかの行で最終カラムに入れた値だけ文字化けする現象が発生しています。
bindする際の値をデバッグして確認したのですが、その際は特に文字化け等も
しておらず(改行コード等の余計なコードも入っていませんでした)
INSERTをすると文字化けしています。
なぜか最終カラムにだけ発生します。
TABLE作成時に最終カラムにダミーの項目を追加してINSERTを行うと
文字化けは発生しませんでした。
調べているのですが、原因が分からず困っています。
どなかかお分かりになるでしょうか?
127NAME IS NULL
2013/01/24(木) 00:05:14.01ID:keellpin そんな文章で分かるわけないだろ。ここはエスパー募集スレじゃないっす。
再現コード貼ったら誰かが答えてくれると思うよ。
再現コード貼ったら誰かが答えてくれると思うよ。
128NAME IS NULL
2013/02/01(金) 04:20:10.83ID:??? マルチコアCPUで使っても1コアだけ100%に張り付くだけでもったいない気がしたので
クエリを行うプログラムをマルチスレッドで走らせてみたら
複数のコアが代わる代わる100%になるだけで実行時間は全然変わらなかったと日記
クエリを行うプログラムをマルチスレッドで走らせてみたら
複数のコアが代わる代わる100%になるだけで実行時間は全然変わらなかったと日記
129NAME IS NULL
2013/02/01(金) 18:22:49.02ID:??? ここは君の日記帳ではありません
どうせプログラムの作りが悪いんだろ
どうせプログラムの作りが悪いんだろ
130NAME IS NULL
2013/02/03(日) 18:02:23.29ID:??? 論文にしてどこかに投稿して
131NAME IS NULL
2013/02/03(日) 20:38:35.28ID:??? リジェクトされますた
132NAME IS NULL
2013/02/05(火) 16:01:47.88ID:ABxdKMYQ おすすめのSQLitesqliteクライアントを教えてください。
PCでは
・Common SQL Environment
ttp://www.hi-ho.ne.jp/tsumiki/
を使ってるのですが、それほど高機能は求めていません。
てんぷれにないってことは、鉄板みたいなのはないのでしょうか?
目的
・SQL文の予習・復習 for Android2.3
条件
・無料
・SQLが発行できる
・結果がExcelのような表で表示される
使用中アプリの評価
・Start SQL
ttps://play.google.com/store/apps/details?id=dev.tarow.ss
○SQLの予約語KBがほしい
○公開プロバイダ(例えば電話帳)にアクセスしたい(その場合はInternetパーミッションなし)
PCでは
・Common SQL Environment
ttp://www.hi-ho.ne.jp/tsumiki/
を使ってるのですが、それほど高機能は求めていません。
てんぷれにないってことは、鉄板みたいなのはないのでしょうか?
目的
・SQL文の予習・復習 for Android2.3
条件
・無料
・SQLが発行できる
・結果がExcelのような表で表示される
使用中アプリの評価
・Start SQL
ttps://play.google.com/store/apps/details?id=dev.tarow.ss
○SQLの予約語KBがほしい
○公開プロバイダ(例えば電話帳)にアクセスしたい(その場合はInternetパーミッションなし)
133NAME IS NULL
2013/02/05(火) 18:42:06.40ID:??? 俺も前探したことあったけど、これといったのは見つからなかったな
aSQLiteManagerぐらいかな使い物になりそうだったのは
aSQLiteManagerぐらいかな使い物になりそうだったのは
134sage
2013/02/05(火) 21:43:57.72ID:ABxdKMYQ >>133
レスありがとうございます
aSQLiteManagerも使ってみました
あれは、タブレットだと綺麗にみれるのかな?
文字が小さすぎてファイルをタップしにくいのと、
たぶん型によって色分けされた表が目に痛くて
すぐアンインストールしてしまいました
なんか、中国製のも目にとまったけど、
パーミッションみてやめたw
無料で欲しいってのがあつかましいのですが
しばらくStart SQLで我慢して
ちょくちょくgoogle playをチェックします
AndroidでSQL打つ需要ってあまりないのかな
レスありがとうございます
aSQLiteManagerも使ってみました
あれは、タブレットだと綺麗にみれるのかな?
文字が小さすぎてファイルをタップしにくいのと、
たぶん型によって色分けされた表が目に痛くて
すぐアンインストールしてしまいました
なんか、中国製のも目にとまったけど、
パーミッションみてやめたw
無料で欲しいってのがあつかましいのですが
しばらくStart SQLで我慢して
ちょくちょくgoogle playをチェックします
AndroidでSQL打つ需要ってあまりないのかな
135NAME IS NULL
2013/02/05(火) 22:33:19.13ID:??? まあ、ないよね。
136NAME IS NULL
2013/02/15(金) 20:56:17.34ID:??? A5:SQL Mk-2 という開発ツールを使い始めたばかりなんですが、
起動すると何の設定をしなくても「ODBC/SQLite3 Database」というのが表示されます。
これは単に表示されるだけのものなんでしょうか?
それとも、設定やフォルダの設置でほかのSQLのように扱えるようになるんでしょうか?
起動すると何の設定をしなくても「ODBC/SQLite3 Database」というのが表示されます。
これは単に表示されるだけのものなんでしょうか?
それとも、設定やフォルダの設置でほかのSQLのように扱えるようになるんでしょうか?
137NAME IS NULL
2013/02/17(日) 22:23:46.58ID:??? そのA5:SQL Mk-2とかいう開発ツールの作者に聞けば…?
138NAME IS NULL
2013/02/18(月) 12:27:35.69ID:??? コントロールパネルか管理ツールでデータソース(ODBC)というのが
あるからそれで作ってやれば一応使えるよ。
ODBCの範囲内だけどな
あるからそれで作ってやれば一応使えるよ。
ODBCの範囲内だけどな
139NAME IS NULL
2013/02/24(日) 20:28:36.90ID:zXyOLTMR 最近興味があってsqliteを調べてるんですが、
みんなはやはりスマホのアプリ開発の為に利用してるんですか?
ざっと調べたところだと、複数のユーザからの頻繁な更新を受けるようなwebアプリの利用は厳しいという
情報を見つけたんだけど、古い情報なのでいまはどうなってるのかわかりません
やっぱりそういう用途では利用しづらいんでしょうか
それともなにか解決策が見つかったりしたんでしょうか
みんなはやはりスマホのアプリ開発の為に利用してるんですか?
ざっと調べたところだと、複数のユーザからの頻繁な更新を受けるようなwebアプリの利用は厳しいという
情報を見つけたんだけど、古い情報なのでいまはどうなってるのかわかりません
やっぱりそういう用途では利用しづらいんでしょうか
それともなにか解決策が見つかったりしたんでしょうか
140NAME IS NULL
2013/02/24(日) 21:36:06.19ID:??? 今はジャーナルモードかえれば結構余裕
141NAME IS NULL
2013/02/27(水) 13:05:20.84ID:??? sqlite3ってMySQLみたいに
use データベース名
ってできないの?
代替コマンドある?
use データベース名
ってできないの?
代替コマンドある?
142NAME IS NULL
2013/02/27(水) 13:43:59.53ID:??? コマンドラインの話ね?
基本的に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
見たいな。
基本的に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
見たいな。
143NAME IS NULL
2013/03/02(土) 13:28:15.59ID:??? globとlikeってどう使い分けるんでしょうか?
globの方が高機能だが速度はシンプルなlikeに劣るって認識であってますか?
globの方が高機能だが速度はシンプルなlikeに劣るって認識であってますか?
144NAME IS NULL
2013/03/03(日) 11:46:23.39ID:??? LIKEは標準、GLOBはSQLite拡張、でいいんじゃね
145NAME IS NULL
2013/03/03(日) 19:03:49.41ID:??? phpから使ってるんだけど
PRIMARY KEY AUTOINCREMENTが定義されてるindexフィールドがあるテーブルlogがあります。
そこにinsert into log DEFAULT VALUES;をした場合
その時に作られたindexの番号を取得するにはどうしたらいいの?
即order by desc limit 1しても、その時に作られたと保証はされないですし
(同じタイミングで別プロセスに作成されたのかも知れない)
PRIMARY KEY AUTOINCREMENTが定義されてるindexフィールドがあるテーブルlogがあります。
そこにinsert into log DEFAULT VALUES;をした場合
その時に作られたindexの番号を取得するにはどうしたらいいの?
即order by desc limit 1しても、その時に作られたと保証はされないですし
(同じタイミングで別プロセスに作成されたのかも知れない)
146NAME IS NULL
2013/03/03(日) 19:17:53.28ID:??? last_insert_rowid() とか使えばいんでね?
147NAME IS NULL
2013/03/03(日) 22:36:59.89ID:??? 補足すると、トランザクションありの状態で、だよね
148NAME IS NULL
2013/03/12(火) 10:01:39.94ID:??? PHPでPDOで使ってるんですが、トランザクションを開始してコミットする前に
webページを遷移させたからかどうかはわかりませんが、データベースがロックしたままになってしまいました。
PHPからデータベースがロックしているか確認してロックを解除する方法はありますか?
ネットで検索しまくりましたが、
「ロックしてるファイルをコピペしたファイルをデータベースとして使えばロックは解除される」
というのしか見つかりませんでした。
webページを遷移させたからかどうかはわかりませんが、データベースがロックしたままになってしまいました。
PHPからデータベースがロックしているか確認してロックを解除する方法はありますか?
ネットで検索しまくりましたが、
「ロックしてるファイルをコピペしたファイルをデータベースとして使えばロックは解除される」
というのしか見つかりませんでした。
149NAME IS NULL
2013/03/12(火) 18:08:32.14ID:??? PDOで使ったこと無いから知らないけど、普通はロックしてるプロセスが終了すれば解放される。
ロックしたまま無限ループしてるとかじゃない限り、そのうち解放されるんじゃない?
ロックしたまま無限ループしてるとかじゃない限り、そのうち解放されるんじゃない?
151NAME IS NULL
2013/03/12(火) 20:46:56.95ID:??? 再起動してもロックって・・・
ロックファイルでも作ってるのかしら、もしくはなんかの間違い
ロックファイルでも作ってるのかしら、もしくはなんかの間違い
152NAME IS NULL
2013/03/12(火) 23:52:57.99ID:??? SQLite自体にロックファイルの概念はないぞ。
そもそも「データベースがロックされたままになった」というのは何を持って判断したの?
そもそも「データベースがロックされたままになった」というのは何を持って判断したの?
153148
2013/03/13(水) 01:43:43.60ID:??? ロックされているファイルに対してトランザクションをかけて、executeすると
ロックされてるっていうエラーが出た。
とりあえずロックされたファイルをコピペしたファイルを今使ってるので問題はなくなったけど、
またいつこんなことが起こるのか心配…
ロックされてるっていうエラーが出た。
とりあえずロックされたファイルをコピペしたファイルを今使ってるので問題はなくなったけど、
またいつこんなことが起こるのか心配…
154148
2013/03/13(水) 01:53:29.16ID:??? このへんかな。
http://ja.softuses.com/28862
http://ult.riise.hiroshima-u.ac.jp/~nagato/?firefox
つまり firefox が起動中 lock しているこれらの sqlite ファイルが正常に解放される事無く、 firefox が落ちてしまった時に問題が発生するのではないかと。
(中略)
database is locked となる sqlite database file であるが、別の場所にコピーすると何事もなかったのように開くことができることに気付いた。
http://ja.softuses.com/28862
http://ult.riise.hiroshima-u.ac.jp/~nagato/?firefox
つまり firefox が起動中 lock しているこれらの sqlite ファイルが正常に解放される事無く、 firefox が落ちてしまった時に問題が発生するのではないかと。
(中略)
database is locked となる sqlite database file であるが、別の場所にコピーすると何事もなかったのように開くことができることに気付いた。
155NAME IS NULL
2013/03/13(水) 18:43:14.14ID:??? ん、PDOの話じゃないの?
・OS、アーキテクチャ
・ファイルシステム
・使用法、再現コード
ぷりーず。
・OS、アーキテクチャ
・ファイルシステム
・使用法、再現コード
ぷりーず。
156148
2013/03/14(木) 12:36:23.37ID:??? リンクは単にファイルがロックされた件に関する検索の情報です。
他にほとんどなかったので。
PDOかどうかって関係あるんですか…?
OSはwindows7
アーキテクチャとは?
ファイルシステムはNTFS
使用法はPHPでPDOでトランザクションしてプリペアでupdateをセットし、execute、コミットの順です。
コードは再現できるコード作れたらそれを載せます。
他にほとんどなかったので。
PDOかどうかって関係あるんですか…?
OSはwindows7
アーキテクチャとは?
ファイルシステムはNTFS
使用法はPHPでPDOでトランザクションしてプリペアでupdateをセットし、execute、コミットの順です。
コードは再現できるコード作れたらそれを載せます。
157NAME IS NULL
2013/03/14(木) 12:46:18.34ID:??? アーキテクチャはIA(インテル)だろ
通常は fcntl でロックしてるようだから
ロック中に落ちたらコピーして仕切りなおし、でいいけど
Windowsはどうなんかな・・・
通常は fcntl でロックしてるようだから
ロック中に落ちたらコピーして仕切りなおし、でいいけど
Windowsはどうなんかな・・・
158NAME IS NULL
2013/03/14(木) 18:29:01.45ID:??? 原因を切り分けるためには情報が色々必要ってことでしょ。トラブル解析の基本。
例えばPDOでしか再現できない、とかだとするとPHPのSQLite用PDOドライバのバグなんて可能性もあるからね。
windowsだったら php_pdo_sqlite.dll ってやつ。phpはこのラッパーを経由してSQLiteのAPIを叩いてるわけ。
あとは(特にLinuxの)NFSはファイルロックまわりの実装が弱い、みたいなことがあったりして、
ファイルシステムによっては同様のことがあるかもしれないからファイルシステムの情報も必要、とか。
もちろんPHPスクリプト自体の作りが悪い可能性もあるから再現コードも必要。
>トランザクションしてプリペアでupdateをセットし、execute、コミット
とやってるつもりだったが、よく見たら違うこと書いてるとかね。
例えばPDOでしか再現できない、とかだとするとPHPのSQLite用PDOドライバのバグなんて可能性もあるからね。
windowsだったら php_pdo_sqlite.dll ってやつ。phpはこのラッパーを経由してSQLiteのAPIを叩いてるわけ。
あとは(特にLinuxの)NFSはファイルロックまわりの実装が弱い、みたいなことがあったりして、
ファイルシステムによっては同様のことがあるかもしれないからファイルシステムの情報も必要、とか。
もちろんPHPスクリプト自体の作りが悪い可能性もあるから再現コードも必要。
>トランザクションしてプリペアでupdateをセットし、execute、コミット
とやってるつもりだったが、よく見たら違うこと書いてるとかね。
159NAME IS NULL
2013/03/15(金) 13:01:49.99ID:??? unlocker入れておくと、ファイルがロックされてるときに、どのプロセスがそのファイルをロックしているか教えてくれる。
ロックされたプロセスからファイルを解放することもできる。
こういうプログラムがあるから、どのプロセスがロックしているのかをプログラムから知る方法はあるのだろうけど、
俺は知らない。
ロックされたプロセスからファイルを解放することもできる。
こういうプログラムがあるから、どのプロセスがロックしているのかをプログラムから知る方法はあるのだろうけど、
俺は知らない。
160NAME IS NULL
2013/03/20(水) 23:58:09.53ID:??? 3.7.16
161NAME IS NULL
2013/03/30(土) 00:02:59.52ID:??? 3.7.16.1
162NAME IS NULL
2013/04/12(金) 22:54:29.39ID:??? 3.7.16.2
163NAME IS NULL
2013/05/20(月) 20:00:18.33ID:???164NAME IS NULL
2013/05/20(月) 22:39:47.94ID:??? AccessからODBC接続したんだけど、テーブルのデータを修正できません。なぜでしょうか?
165NAME IS NULL
2013/05/21(火) 00:02:34.93ID:???166NAME IS NULL
2013/06/05(水) 18:39:43.47ID:??? 累計計算するのはどうやるの?
167NAME IS NULL
2013/06/05(水) 18:50:39.26ID:??? 累計計算って?
窓関数使いたいとか?
それともsqlite3_total_changesのこと?
窓関数使いたいとか?
それともsqlite3_total_changesのこと?
168NAME IS NULL
2013/06/05(水) 19:04:13.39ID:???169NAME IS NULL
2013/06/05(水) 19:42:26.01ID:???170NAME IS NULL
2013/06/05(水) 19:50:35.27ID:??? >>169
有難う
有難う
171NAME IS NULL
2013/06/08(土) 10:15:26.55ID:??? トランザクションの end と comitt の違いは何ですか?
172NAME IS NULL
2013/06/08(土) 10:48:10.84ID:???173NAME IS NULL
2013/06/08(土) 12:00:53.46ID:??? >>172
有難う解りました
有難う解りました
174NAME IS NULL
2013/06/08(土) 12:04:21.70ID:??? PupSQLiteで、下記がエラーになります
エラーメッセージ 【cannnot start a transaction within a transaction】
↓
-------------------------
BEGIN;
UPDATE test SET [Name]="太郎" WHERE [ID]=2;
END;
--------------------------
2行目を UPDATEでなく SELECT文にすると正しく実行されます
何が原因でしょうか?
エラーメッセージ 【cannnot start a transaction within a transaction】
↓
-------------------------
BEGIN;
UPDATE test SET [Name]="太郎" WHERE [ID]=2;
END;
--------------------------
2行目を UPDATEでなく SELECT文にすると正しく実行されます
何が原因でしょうか?
175NAME IS NULL
2013/06/08(土) 12:07:33.89ID:??? そのエラーメッセージに原因が書いてあるみたいだけど…
176NAME IS NULL
2013/06/08(土) 12:13:32.11ID:??? もう少し詳しく教えて頂けませんでしょうか?
100万レコードのUPDATEをするのですが、SQLiteはトランザクションで挟まないと遅いと見聞きしたので、試しに1レコードでやってみたらエラーがでました
どうすれば目的が叶えられますでしょうか?
100万レコードのUPDATEをするのですが、SQLiteはトランザクションで挟まないと遅いと見聞きしたので、試しに1レコードでやってみたらエラーがでました
どうすれば目的が叶えられますでしょうか?
177NAME IS NULL
2013/06/08(土) 12:26:31.81ID:???178NAME IS NULL
2013/06/08(土) 12:34:32.16ID:??? もう少し詳しく教えて頂けませんでしょうか?
どうすれば目的が叶えられますでしょうか?
どうすれば目的が叶えられますでしょうか?
179NAME IS NULL
2013/06/08(土) 12:49:41.39ID:???180NAME IS NULL
2013/06/08(土) 13:04:31.90ID:??? 意味は解ります
遅くないように明示的にトランザクションを掛けてUPDATEをするにはどうしたら良いでしょうか?
宜しくお願いします
遅くないように明示的にトランザクションを掛けてUPDATEをするにはどうしたら良いでしょうか?
宜しくお願いします
181NAME IS NULL
2013/06/08(土) 13:29:28.78ID:???182NAME IS NULL
2013/06/08(土) 13:46:46.02ID:??? >>181
有難うございます
> 既に別のトランザクション
これは、SQLiteがオートで行ってるトランザクションでしょうか?
それだと遅いと見聞きしていたものです
それともPupSQLiteが親切に勝手に行っているものでしょうか?
どちらと思われますでしょうか、ご意見をお聞かせくださいませ
有難うございます
> 既に別のトランザクション
これは、SQLiteがオートで行ってるトランザクションでしょうか?
それだと遅いと見聞きしていたものです
それともPupSQLiteが親切に勝手に行っているものでしょうか?
どちらと思われますでしょうか、ご意見をお聞かせくださいませ
183NAME IS NULL
2013/06/08(土) 15:22:23.78ID:??? >>182
暗黙のトランザクションはBEGINを明示せずに
UPDATEなどをした場合に行われるから
この件には関係ないだろう
他にどこかでトランザクション開始を指示していて
それを終わらせていないとしか考えられないよ
暗黙のトランザクションはBEGINを明示せずに
UPDATEなどをした場合に行われるから
この件には関係ないだろう
他にどこかでトランザクション開始を指示していて
それを終わらせていないとしか考えられないよ
184NAME IS NULL
2013/06/08(土) 15:23:47.36ID:??? >>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. 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とかいうツールが変なことをしているか。後者ならツールの作者に聞かないと分からん。
185NAME IS NULL
2013/06/08(土) 15:38:27.65ID:???186NAME IS NULL
2013/06/08(土) 19:42:57.07ID:??? そういう、よくわからないときは、本家のsqlite3.exeでSQL文を実行してみるのも手よ。
187NAME IS NULL
2013/06/14(金) 05:21:43.10ID:i47DmT1C iosやandroidアプリで、ドラッグ&ドロップでリストのレコードを入れ替えたタイミングで、テーブルに更新をかけ並び順を記憶させたいのですが、何かいい方法はないものでしょうか。
単純にリスト順にすべてのレコードに対してUPDATEをかけるのでは、件数が増えた場合コストがかかりすぎてしまいます。
単純にリスト順にすべてのレコードに対してUPDATEをかけるのでは、件数が増えた場合コストがかかりすぎてしまいます。
188NAME IS NULL
2013/06/14(金) 06:22:18.66ID:???189NAME IS NULL
2013/06/14(金) 18:26:23.86ID:??? 入れ替えた時はメモリ上で順番を記憶して
ビューを閉じたりする時にデータベースを書き換える
ビューを閉じたりする時にデータベースを書き換える
190NAME IS NULL
2013/06/15(土) 16:24:54.32ID:???191NAME IS NULL
2013/06/15(土) 18:26:19.32ID:???192NAME IS NULL
2013/06/15(土) 23:56:42.27ID:??? 並び順(と元のテーブルへの外部キー)だけを保持するテーブルを別に作ればよいと思う。
参照するときはjoinしてorder by
参照するときはjoinしてorder by
193NAME IS NULL
2013/06/16(日) 03:46:48.11ID:??? >>192
それで何が解決するのかわからない
それで何が解決するのかわからない
194NAME IS NULL
2013/06/16(日) 14:07:21.83ID:??? SQL Server Compact 4.0 と比べてどっちが良い?
195NAME IS NULL
2013/06/16(日) 14:34:01.22ID:??? 名前からしてCEに組み込めるかと思ったけど、そういうわけでもないみたいだなw
CE用にSQLiteのソース組み込んで使ってる・・・
ちょっと使ってみようかな
CE用にSQLiteのソース組み込んで使ってる・・・
ちょっと使ってみようかな
196NAME IS NULL
2013/06/18(火) 08:48:33.46ID:bfvLnN3q Winアプリで2つExeがある場合とかは、同時に接続できるのでしょうか?
片方がトランザクション開始したらコミットするまで、
もう片方がトランザクション開始出来ない、といった程度の問題でしょうか?
片方がトランザクション開始したらコミットするまで、
もう片方がトランザクション開始出来ない、といった程度の問題でしょうか?
197NAME IS NULL
2013/06/18(火) 19:09:59.34ID:??? 自分で試すことも出来ないの?
198NAME IS NULL
2013/06/18(火) 19:49:50.44ID:??? インスタンス別じゃん
199NAME IS NULL
2013/06/19(水) 00:00:22.73ID:??? >>196
Journal_modeで挙動変えられるからそれぞれ試してみて使い方にマッチするのを見つけろ
Journal_modeで挙動変えられるからそれぞれ試してみて使い方にマッチするのを見つけろ
200NAME IS NULL
2013/07/17(水) NY:AN:NY.ANID:KY/vvdPC 拡張モジュールで、任意フォルダ内のファイル名、サイズ、タイムスタンプとかをテーブルのように参照出来るもの、ないですかねえ
201NAME IS NULL
2013/07/19(金) NY:AN:NY.ANID:??? その説明じゃどんな仕様を想定しているのか分からん。
202NAME IS NULL
2013/07/19(金) NY:AN:NY.ANID:??? SELECT path FROM C:\ WHERE size >= 1000000
みたいなことをしたいってことじゃないかと想像
みたいなことをしたいってことじゃないかと想像
203NAME IS NULL
2013/07/19(金) NY:AN:NY.ANID:??? PowerShellにそんな感じのなかったっけ
204NAME IS NULL
2013/07/20(土) NY:AN:NY.ANID:??? ディレクトリを走査して一覧表を作成している間にそのディレクトリの内容が
変わっちゃう場合があるし、それを止める手段もちょっと思いつかない。
こういうの、データベースの一機能として提供した場合に、なんか対処が面倒な
クレームとか来そう。
変わっちゃう場合があるし、それを止める手段もちょっと思いつかない。
こういうの、データベースの一機能として提供した場合に、なんか対処が面倒な
クレームとか来そう。
205NAME IS NULL
2013/07/21(日) NY:AN:NY.ANID:???206NAME IS NULL
2013/07/21(日) NY:AN:NY.ANID:??? PowerShellで良いじゃん
207NAME IS NULL
2013/07/21(日) NY:AN:NY.ANID:??? sqliteのスレでその回答に何の意味が有るのかと
208NAME IS NULL
2013/08/15(木) NY:AN:NY.ANID:??? System.Data.SQLite をVBAから直接(ADOではなく)使えますか?
209NAME IS NULL
2013/08/15(木) NY:AN:NY.ANID:??? ホームページによればSystem.Data.SQLite is an ADO.NET adapter for SQLite。
そもそもADOじゃなくてADO.NET。"直接"が何を差すのかも分からず、
質問が理解できなかったので、熟考の上、再投稿をお願いします。
そもそもADOじゃなくてADO.NET。"直接"が何を差すのかも分からず、
質問が理解できなかったので、熟考の上、再投稿をお願いします。
210NAME IS NULL
2013/08/15(木) NY:AN:NY.ANID:??? 知らんクセに偉そうに答えるなよw
211NAME IS NULL
2013/08/15(木) NY:AN:NY.ANID:??? .netのdllもVBSやVBAから直接参照できるように書いてあるのも結構あるでしょ
暗号化やテキスト操作なんか
暗号化やテキスト操作なんか
212NAME IS NULL
2013/08/16(金) NY:AN:NY.ANID:??? やってみたけど参照できないよ
213NAME IS NULL
2013/08/18(日) NY:AN:NY.ANID:??? どうやった?
もしかして別のものみてるかな?
もしかして別のものみてるかな?
214NAME IS NULL
2013/08/19(月) NY:AN:NY.ANID:??? AccessのABEで参照設定して
Dim testDB
With System.Data.SQLite
set testDB=.createDatabase("SQLitetest.sq3")
.createTable testDB , "testTable"
end with
Dim testDB
With System.Data.SQLite
set testDB=.createDatabase("SQLitetest.sq3")
.createTable testDB , "testTable"
end with
215NAME IS NULL
2013/08/27(火) NY:AN:NY.ANID:??? 3.8.0
216NAME IS NULL
2013/08/27(火) NY:AN:NY.ANID:??? >>214
アベってVBEのつもりか
アベってVBEのつもりか
217NAME IS NULL
2013/08/27(火) NY:AN:NY.ANID:??? 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の順番で取得できるように
・テーブル例
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の順番で取得できるように
218NAME IS NULL
2013/08/27(火) NY:AN:NY.ANID:??? 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;
長いけど…。偉い人ならもっとスマートにできるかもしれん。
長いけど…。偉い人ならもっとスマートにできるかもしれん。
219NAME IS NULL
2013/08/28(水) NY:AN:NY.ANID:??? order by caseなんて初めて知りました。
ありがとうございます。
ありがとうございます。
220NAME IS NULL
2013/08/29(木) NY:AN:NY.ANID:??? ●のログをひもづけるために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 = '板名';
というスキーマを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 = '板名';
221NAME IS NULL
2013/08/30(金) NY:AN:NY.ANID:??? index作れよ
222sage
2013/08/30(金) NY:AN:NY.ANID:??? すんませんCentOS5.9で、php-5.1.6からsqlite-3.3.6を使いたく、
yumでphp-pdoをインストールしたのですが、
Call to undefined function sqlite_open() となって使用できません。
phpinfo()ではpdoとpdo_sqliteが追加されているのですが、他に見るところありますでしょうか。
yumでphp-pdoをインストールしたのですが、
Call to undefined function sqlite_open() となって使用できません。
phpinfo()ではpdoとpdo_sqliteが追加されているのですが、他に見るところありますでしょうか。
223NAME IS NULL
2013/08/31(土) NY:AN:NY.ANID:??? windowsでsqliteデータベース開きたい時ってどんなソフト使ってる?
pupsqliteが異常終了多すぎて乗り換えたい
pupsqliteが異常終了多すぎて乗り換えたい
224NAME IS NULL
2013/08/31(土) NY:AN:NY.ANID:???225NAME IS NULL
2013/08/31(土) NY:AN:NY.ANID:??? NaviCat
226NAME IS NULL
2013/08/31(土) NY:AN:NY.ANID:??? SQLiteSpy使うか、コマンドラインからsqlite3で操作するかだな
227NAME IS NULL
2013/09/09(月) 23:20:54.16ID:??? 俺はいろいろ試した結果あれ一択だわ
あれ、何だったっけか、えーとちょっと待ってて
あれ、何だったっけか、えーとちょっと待ってて
228NAME IS NULL
2013/09/09(月) 23:58:17.91ID:??? 早くしろボケ
229NAME IS NULL
2013/09/10(火) 15:10:11.47ID:mn2EqLZS PostgreSQL 9.3.0
230NAME IS NULL
2013/09/14(土) 00:05:38.04ID:??? 3.8.0.2来てた〜
ttp://www.sqlite.org/releaselog/3_8_0_2.html
ttp://www.sqlite.org/releaselog/3_8_0_2.html
231NAME IS NULL
2013/09/14(土) 06:46:30.81ID:??? 思いだした。
SQLite Expert
http://www.sqliteexpert.com
excel exportとか使わなければ無料版でも十分
navicatは高いし昔から好きじゃないんだよなー
SQLite Expert
http://www.sqliteexpert.com
excel exportとか使わなければ無料版でも十分
navicatは高いし昔から好きじゃないんだよなー
232NAME IS NULL
2013/09/14(土) 08:34:17.15ID:??? 遅せーんだよボケ、もうNaviCat買っちゃったよ
233NAME IS NULL
2013/09/15(日) 14:05:28.99ID:??? すまんのう、俺にも生活有るもんで
234NAME IS NULL
2013/09/19(木) 04:36:24.30ID:??? チラ裏だけど
sqlite公式のドキュメントって実に良くまとまってるというか、読んでて関心するというか、尊敬さえする。
知りたい情報は探せばちゃんと載ってるし、それで居て機械的な説明に終始してない。読んでて疑問が浮かんだらその答えが次の行に載ってる。
ユーモア的な表現が所々出てくるのも面白い。
暇な時に用も無いのに読んじゃうくらい。
不満はSQL構文図から説明へのリンクが無いことぐらいかな
sqlite公式のドキュメントって実に良くまとまってるというか、読んでて関心するというか、尊敬さえする。
知りたい情報は探せばちゃんと載ってるし、それで居て機械的な説明に終始してない。読んでて疑問が浮かんだらその答えが次の行に載ってる。
ユーモア的な表現が所々出てくるのも面白い。
暇な時に用も無いのに読んじゃうくらい。
不満はSQL構文図から説明へのリンクが無いことぐらいかな
235NAME IS NULL
2013/09/22(日) 18:21:34.80ID:??? MIPS の H/PC2000で使えるSQLlite 落ちてませんか
236NAME IS NULL
2013/09/23(月) 05:49:51.57ID:??? ソースは落ちてるのでコンパイルしましょう
237NAME IS NULL
2013/10/01(火) 23:29:16.52ID:??? INTEGERで作成したカラムに試しに文字列を入れてみたら普通に入りました
なんかALTER的なことをしないとだめなのでしょうか?
なんかALTER的なことをしないとだめなのでしょうか?
238NAME IS NULL
2013/10/02(水) 02:08:06.85ID:??? 型の概念は有りません。
詳しくはggって。
詳しくはggって。
239NAME IS NULL
2013/10/02(水) 02:44:07.27ID:??? ありがとう。
プログラム側で制御することにします。
プログラム側で制御することにします。
240NAME IS NULL
2013/10/05(土) 09:47:56.51ID:??? 数字や文字を区別していないのは
分かりましたが、
取り出した時に、文字なのか数字なのか、実体の型がはっきりしないのは
本当に困ります
文字数字判別の備え付け関数とかないのでしょうか
分かりましたが、
取り出した時に、文字なのか数字なのか、実体の型がはっきりしないのは
本当に困ります
文字数字判別の備え付け関数とかないのでしょうか
241NAME IS NULL
2013/10/05(土) 14:10:44.56ID:??? >>240
insert,updateする前にチェックして入れろ
insert,updateする前にチェックして入れろ
242NAME IS NULL
2013/10/06(日) 12:12:41.85ID:??? >>240
そのカラムは、文字や数字を混在してもいいものであるような設計しているんでしょ?
だったら、取得後、プログラムで制御しなさい。
そうでなければ、型識別用のカラムを用意するとか検討すれば良い。
そのカラムは、文字や数字を混在してもいいものであるような設計しているんでしょ?
だったら、取得後、プログラムで制御しなさい。
そうでなければ、型識別用のカラムを用意するとか検討すれば良い。
243NAME IS NULL
2013/10/06(日) 17:49:56.19ID:??? >>240
select typeof(1), typeof(0.0), typeof('string'), typeof(null);
select typeof(1), typeof(0.0), typeof('string'), typeof(null);
244NAME IS NULL
2013/10/14(月) 00:53:56.36ID:??? ユニコードのCSVもしくはmdbかaccdbで書き出せるフリーソフトってありますか?
245NAME IS NULL
2013/10/14(月) 12:29:43.38ID:??? 探すより作った方が早いかもよ
246NAME IS NULL
2013/10/14(月) 22:29:07.20ID:??? やっぱり作ったほうが手っ取り早いですか…
ありがとうございました。
ありがとうございました。
247NAME IS NULL
2013/10/17(木) 23:59:37.45ID:??? 3.8.1
248NAME IS NULL
2013/10/22(火) 23:54:28.55ID:??? >>247
unlikely(X) 関数追加
Bool型の値Xが6.25%という低確率でしかtrueにならないことを最適化のためにクエリに埋め込んでコアに教える…か
6.25%という数値にはどんな深遠な意味があるのだろうか?
任意の確率を指定出来るlikelihood関数も追加されたとはいえ。
unlikely(X) 関数追加
Bool型の値Xが6.25%という低確率でしかtrueにならないことを最適化のためにクエリに埋め込んでコアに教える…か
6.25%という数値にはどんな深遠な意味があるのだろうか?
任意の確率を指定出来るlikelihood関数も追加されたとはいえ。
249NAME IS NULL
2013/10/28(月) 10:12:41.83ID:BsA/BDpa テーブル「table1」が存在していたらその内容を「table2」へコピーする
みたいなSQLはどうやって書けばいいですか?
みたいなSQLはどうやって書けばいいですか?
250NAME IS NULL
2013/10/28(月) 11:27:23.01ID:??? いきなりコピーして、エラー処理をちゃんとする
テーブルの存在をチェックする構文があったとしても、
それやっちゃうとコピー時にエラーが発生するケースのテストが
難しくなるのでよろしくない
テーブルの存在をチェックする構文があったとしても、
それやっちゃうとコピー時にエラーが発生するケースのテストが
難しくなるのでよろしくない
251NAME IS NULL
2013/10/29(火) 08:09:54.97ID:???252NAME IS NULL
2013/10/29(火) 08:11:26.31ID:??? あぁ勘違いしたスマン無視して下さい
mysqlみたいなif exist的なことか
mysqlみたいなif exist的なことか
253NAME IS NULL
2013/10/29(火) 10:18:26.45ID:??? スキーマのコピーもいるべ
254NAME IS NULL
2013/10/29(火) 11:48:05.47ID:??? 質問です
SQLite 3.7で作成したデータベースを
3.3で読んだり書き込んだりすることは通常問題なくできるものでしょうか?
SQLite 3.7で作成したデータベースを
3.3で読んだり書き込んだりすることは通常問題なくできるものでしょうか?
255NAME IS NULL
2013/10/29(火) 12:09:37.58ID:??? 3系は同じはず。
変わったら4になるんじゃないかな。
変わったら4になるんじゃないかな。
256NAME IS NULL
2013/11/01(金) 09:20:22.30ID:??? >>255
無事解決できました ありがとう
無事解決できました ありがとう
257NAME IS NULL
2013/11/04(月) 13:19:03.79ID:??? 初歩的な質問です
コマンドラインで複数行での入力中に、キャンセルする方法ってあるのでしょうか?
コマンドラインで複数行での入力中に、キャンセルする方法ってあるのでしょうか?
258NAME IS NULL
2013/11/04(月) 13:27:47.35ID:??? 俺はいつも適当な文字打ってエラー出して終了させる
259NAME IS NULL
2013/11/04(月) 13:49:22.94ID:??? ^Dで丸ごと終わらせる、、とか
260NAME IS NULL
2013/11/04(月) 21:24:48.36ID:??? >>258
どうも。それしかないですか。
どうも。それしかないですか。
261NAME IS NULL
2013/11/08(金) 01:29:40.01ID:??? sqliteでcteとwindow関数使えたらもう死んでもいい
のらないかな
のらないかな
262NAME IS NULL
2013/11/12(火) 13:02:35.25ID:??? 半角の濁点付き文字を検索するにはどうすればいいのでしょう?
like ”%[だダ(ダ)]%”
こんな感じでタ+”を一文字として扱いたいんですが、何で囲めばいいんでしょう。
like ”%[だダ(ダ)]%”
こんな感じでタ+”を一文字として扱いたいんですが、何で囲めばいいんでしょう。
263NAME IS NULL
2013/11/12(火) 14:33:46.66ID:??? 正規表現使えるのか
文字列入れるのは無理じゃね
[だダ]|ダ
とか、、
文字列入れるのは無理じゃね
[だダ]|ダ
とか、、
264NAME IS NULL
2013/11/12(火) 22:23:16.26ID:??? プログラムがごちゃごちゃして後々面倒くさいことになりそうなので妥協してしまった、、、
265NAME IS NULL
2013/11/15(金) 03:36:20.07ID:??? SQLigtの初心者で、まだネットで調べながら作ってるレベルです。
で質問なんですが
table1
id|year|month|day|・・・
というテーブルと
table2
id|year|month|day|・・・
の二つのテーブルがあるのですが
yearとmonthとdayが同一である時のみ、色々処理をしたいのですが
SQL文をどう書いたらよいかわかりません。
初心者の質問ですみませんが、ご教示願います。
で質問なんですが
table1
id|year|month|day|・・・
というテーブルと
table2
id|year|month|day|・・・
の二つのテーブルがあるのですが
yearとmonthとdayが同一である時のみ、色々処理をしたいのですが
SQL文をどう書いたらよいかわかりません。
初心者の質問ですみませんが、ご教示願います。
266NAME IS NULL
2013/11/15(金) 05:07:16.29ID:??? お前はsqliteの初心者じゃなくて
データベースの初心者だな
データベースの初心者だな
267265
2013/11/15(金) 08:32:56.61ID:??? はい、現在androidアプリの製作をしてまして
DBを使うことになりSQLightを触り始めた感じです。
DBを使うことになりSQLightを触り始めた感じです。
268NAME IS NULL
2013/11/15(金) 20:22:32.17ID:??? SQLの初心者向けサイトや本は腐るほどあるだろ
なぜそれを見ない?
なぜそれを見ない?
269NAME IS NULL
2013/11/16(土) 02:11:06.63ID:??? sqliteどうのではなく、基本的なsqlのお勉強が必要だね
270NAME IS NULL
2013/11/16(土) 08:34:46.59ID:??? > SQLigtの初心者
> SQLightを触り始めた
すれ違いだな
> SQLightを触り始めた
すれ違いだな
271NAME IS NULL
2013/11/24(日) 17:04:52.87ID:fFOXkp70 作成済みのテーブル my_table にて
カラム column_a の存在確認のみやりたいです。
(ALTER TABLE IF NOT EXITS ... とかではなく、存在確認のみです)
(実際には、「存在しないこと」を確認したいです)
色々とググる中で以下の2つの方法が見つかっていますが
どちらもスマートではないなぁと感じています。
・PRAGMA index_info(my_table) でテーブル情報を取得して、
その中に column_a が存在しないことをループを廻して全件チェックする
・SELECT column_a FROM my_table で例外が発生したら、存在しないとする
もっと直接的にカラムの存在確認はできないのでしょうか?
方法がありましたらご教授いただきたく、よろしくお願いします。
カラム column_a の存在確認のみやりたいです。
(ALTER TABLE IF NOT EXITS ... とかではなく、存在確認のみです)
(実際には、「存在しないこと」を確認したいです)
色々とググる中で以下の2つの方法が見つかっていますが
どちらもスマートではないなぁと感じています。
・PRAGMA index_info(my_table) でテーブル情報を取得して、
その中に column_a が存在しないことをループを廻して全件チェックする
・SELECT column_a FROM my_table で例外が発生したら、存在しないとする
もっと直接的にカラムの存在確認はできないのでしょうか?
方法がありましたらご教授いただきたく、よろしくお願いします。
272NAME IS NULL
2013/11/24(日) 20:48:48.55ID:??? 千葉県松戸市六高台2-78-3
273NAME IS NULL
2013/11/24(日) 22:14:44.64ID:???274NAME IS NULL
2013/11/25(月) 21:16:23.62ID:falVPg2c 重複している行の削除をしたいのですが、
どう書けばよいのか思いつきません。
残すのは_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
を残して、それ以外のレコードを削除したいです。
よろしくお願いいたします。
どう書けばよいのか思いつきません。
残すのは_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
を残して、それ以外のレコードを削除したいです。
よろしくお願いいたします。
275NAME IS NULL
2013/11/25(月) 22:31:27.69ID:??? >>274
スレ違いだけど特別に。
delete from tbl where _ID not in ( select min (_ID) from tbl group by Name );
以後はこちらへ。
SQL質疑応答スレ 14問目
http://toro.2ch.net/test/read.cgi/db/1371476534/
スレ違いだけど特別に。
delete from tbl where _ID not in ( select min (_ID) from tbl group by Name );
以後はこちらへ。
SQL質疑応答スレ 14問目
http://toro.2ch.net/test/read.cgi/db/1371476534/
276274
2013/11/25(月) 22:56:51.79ID:??? >>275
ありがとうございます。
スレ違いでしたか、大変失礼いたしました。
SQLを自分で書くのがSQLiteが初めてでしたので
どこまでがSQL全般の話なのか理解せずに
使っておりました。もっと勉強いたします。
ありがとうございます。
スレ違いでしたか、大変失礼いたしました。
SQLを自分で書くのがSQLiteが初めてでしたので
どこまでがSQL全般の話なのか理解せずに
使っておりました。もっと勉強いたします。
277NAME IS NULL
2013/11/26(火) 07:15:46.13ID:??? いい子だ
278NAME IS NULL
2013/12/02(月) 10:24:15.36ID:g8Y2dRce sqliteに3DCGのデータを埋め込みたいのですが…
279NAME IS NULL
2013/12/02(月) 16:09:08.39ID:??? バイナリデータならBLOBでも使うヨロシ
280NAME IS NULL
2013/12/02(月) 17:53:36.51ID:??? base64エンコードして文字列型でもいい
281NAME IS NULL
2013/12/04(水) 20:22:33.61ID:??? ts
282NAME IS NULL
2013/12/06(金) 09:00:08.26ID:??? VBAからデータ追加するのにRecordsetでAddNewで入れるのと
InsertIntoで入れるのとどっちが速い?
InsertIntoで入れるのとどっちが速い?
283NAME IS NULL
2013/12/06(金) 11:34:30.68ID:??? 自分で試せや、ボケが
284NAME IS NULL
2013/12/07(土) 00:56:02.56ID:??? C#でクラスからクエリを自動作成してくれるライブラリとかってないですかね
285NAME IS NULL
2013/12/07(土) 02:47:58.28ID:??? 3.8.2
286NAME IS NULL
2013/12/12(木) 16:02:49.44ID:??? >>282
後者の方が倍ほど速かったお
後者の方が倍ほど速かったお
287NAME IS NULL
2013/12/12(木) 16:07:36.18ID:??? ODBCドライバ経由でプリコンパイルって使える?
288NAME IS NULL
2013/12/12(木) 19:10:28.35ID:??? ODBCドライバは知らないけど、少なくともSQLiteに「プリコンパイル」なる機能は無いよ。
289NAME IS NULL
2013/12/12(木) 20:23:38.28ID:??? プリペアの事?
290NAME IS NULL
2013/12/13(金) 23:09:13.92ID:??? 違うらしい…。
291NAME IS NULL
2013/12/14(土) 17:07:26.68ID:??? ttp://d.hatena.ne.jp/mftech/20100929/1285754844
の
>/// <summary>
>/// SQL文を実行し、検索結果の第1行第1列を返す
>/// </summary>
> public Object ExecuteScalar(string sql, SQLiteParameter[] parameters)
は、原文
ttp://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();
> }
> }
> }
で、
>(注:上面的代码在2011-07-15日代码重新编辑了,参数由SQLiteParameter[] parameters变为IList<SQLiteParameter> >parameters,使用范围更广)
とのこと
の
>/// <summary>
>/// SQL文を実行し、検索結果の第1行第1列を返す
>/// </summary>
> public Object ExecuteScalar(string sql, SQLiteParameter[] parameters)
は、原文
ttp://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();
> }
> }
> }
で、
>(注:上面的代码在2011-07-15日代码重新编辑了,参数由SQLiteParameter[] parameters变为IList<SQLiteParameter> >parameters,使用范围更广)
とのこと
292NAME IS NULL
2013/12/15(日) 03:42:50.78ID:??? 何言ってるか分からない
293NAME IS NULL
2014/01/08(水) 08:46:17.46ID:??? 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;
}
って、メソッドで用意されてないんかな
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;
}
って、メソッドで用意されてないんかな
294NAME IS NULL
2014/01/08(水) 08:51:31.58ID:??? 誤爆すまん
295NAME IS NULL
2014/01/11(土) 15:42:52.85ID:??? いつも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では同じことをするクエリは書けませんか?
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では同じことをするクエリは書けませんか?
296NAME IS NULL
2014/01/11(土) 19:25:15.43ID:??? 一括で同じことをするクエリはないみたいですが、
一応自己解決しました。では。
一応自己解決しました。では。
297NAME IS NULL
2014/01/13(月) 15:41:14.71ID:??? 自分のことしか考えてない・・・
298NAME IS NULL
2014/01/13(月) 23:03:34.81ID:??? だってゆとりだもの。
299NAME IS NULL
2014/01/13(月) 23:09:14.82ID:??? 義務教育はぜーんぶ糞
300NAME IS NULL
2014/01/15(水) 22:19:08.42ID:??? /// <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;
}
/// 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;
}
301NAME IS NULL
2014/01/18(土) 00:46:11.01ID:3tf2egSa カラムにDateTime型を指定出来るけど
実際は、日付入れるとRealかIntegerかTextが入るよね
エポック秒使うとして最初からInteger指定しとくのと何が変わるの?
実際は、日付入れるとRealかIntegerかTextが入るよね
エポック秒使うとして最初からInteger指定しとくのと何が変わるの?
302NAME IS NULL
2014/01/22(水) 21:15:47.29ID:???303NAME IS NULL
2014/01/29(水) 22:35:04.57ID:gj57qZ83 株価のDBを1ファイルに収めて使ってきたけど1GB超えてるし
これを銘柄数だけファイルを作っても良いのではと思うようになった
db.open&closeするオーバーヘッドって結構大きいのかな?
分ける事でカラムとIndexを減らせるので1ファイルで見ると速度も上がって容量も減るけど
open&closeが4000回近く増えるから、ここで遅くなると意味ないし
他のプログラム見てると結構分けてるんだよね、4000個も無いけど
どう思いますか?
これを銘柄数だけファイルを作っても良いのではと思うようになった
db.open&closeするオーバーヘッドって結構大きいのかな?
分ける事でカラムとIndexを減らせるので1ファイルで見ると速度も上がって容量も減るけど
open&closeが4000回近く増えるから、ここで遅くなると意味ないし
他のプログラム見てると結構分けてるんだよね、4000個も無いけど
どう思いますか?
304NAME IS NULL
2014/01/29(水) 23:25:07.25ID:??? コネクションプールで良いみたい、ではでは
305NAME IS NULL
2014/01/30(木) 12:31:35.75ID:??? 同じでDBを再利用するならそれ
串刺しはアタッチ
串刺しはアタッチ
306NAME IS NULL
2014/02/02(日) 00:41:43.45ID:??? データベースを勉強してみようと思ってます。
少し変な質問ですが、SQLiteはサーバーを必要とせず、
ローカル環境で導入できるということですが、
それならば、MS-Accessと、どう違うのか、いや全然違うのは判るんだけど。
二つを対比して、特徴があれば教えてください。
少し変な質問ですが、SQLiteはサーバーを必要とせず、
ローカル環境で導入できるということですが、
それならば、MS-Accessと、どう違うのか、いや全然違うのは判るんだけど。
二つを対比して、特徴があれば教えてください。
307NAME IS NULL
2014/02/02(日) 07:34:40.62ID:??? まず病院へいきましょうね
308NAME IS NULL
2014/02/02(日) 09:13:21.60ID:??? >>306
> 少し変な質問ですが、SQLiteはサーバーを必要とせず、
と、言う仕組みは同じだよ。
個々の機能とか、Access は DBMS 以外の機能 (フォームとか) があるからそういうところは違うけど、漫然と特徴とか言われても説明しづらい。
> 少し変な質問ですが、SQLiteはサーバーを必要とせず、
と、言う仕組みは同じだよ。
個々の機能とか、Access は DBMS 以外の機能 (フォームとか) があるからそういうところは違うけど、漫然と特徴とか言われても説明しづらい。
309NAME IS NULL
2014/02/02(日) 12:26:30.19ID:??? >>306
SQLiteは、一般的なSQLを扱うRDB入門(ex.情報処理試験)としては、まったく向いていない。
結局のところ、サーバ型のDBMSから始めるのが、仕組みを理解するには一番良かったりする。
SQLiteは、一般的なSQLを扱うRDB入門(ex.情報処理試験)としては、まったく向いていない。
結局のところ、サーバ型のDBMSから始めるのが、仕組みを理解するには一番良かったりする。
310NAME IS NULL
2014/02/02(日) 12:34:09.34ID:??? Access は、
データベースエンジンACE + VBA + フォーム + レポート
データベースエンジンACE + VBA + フォーム + レポート
311NAME IS NULL
2014/02/02(日) 23:51:02.22ID:??? データベースの何を知りたいんだ
sqliteは少なくともデータベースを知ってる人用のプロダクトだと思うぞ
巷のデータベース入門書でも買って、
ポスグレでもMariaDBでもfirebirdでもいいから普通のRDB入れなさい。
全部ローカルで入れて使えるんだから。
sqliteは少なくともデータベースを知ってる人用のプロダクトだと思うぞ
巷のデータベース入門書でも買って、
ポスグレでもMariaDBでもfirebirdでもいいから普通のRDB入れなさい。
全部ローカルで入れて使えるんだから。
312NAME IS NULL
2014/02/02(日) 23:53:29.45ID:??? ただの釣りだと思います
313NAME IS NULL
2014/02/03(月) 00:28:49.09ID:??? いろいろとありがとうございます。
西沢直木さんの本でコマンドを打ってみたりしました。
SQLは初めてですが、いまのところsqliteが扱いやすい(他と実際比べたわけでないけど)
と思いました。
Accessを比較にだしたのは個人的にローカルで株価などの経済データを扱いたいと思ったからです。
特にサーバを必要と感じなかったので、MySQLなどは今のところ考えていません。
ちゃんと説明せず申し訳ないです。概要はわかりましたありがとうございました。
西沢直木さんの本でコマンドを打ってみたりしました。
SQLは初めてですが、いまのところsqliteが扱いやすい(他と実際比べたわけでないけど)
と思いました。
Accessを比較にだしたのは個人的にローカルで株価などの経済データを扱いたいと思ったからです。
特にサーバを必要と感じなかったので、MySQLなどは今のところ考えていません。
ちゃんと説明せず申し訳ないです。概要はわかりましたありがとうございました。
314NAME IS NULL
2014/02/03(月) 08:27:55.69ID:??? 今は中学生が株やるのか
315NAME IS NULL
2014/02/03(月) 23:57:55.04ID:??? これは、煽ってるんだよな。おそらく。
316NAME IS NULL
2014/02/04(火) 07:43:15.68ID:??? 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.
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.
317NAME IS NULL
2014/02/04(火) 10:37:12.45ID:??? おい、CTE載ったじゃねーかよ。recursiveも使えるし
素晴らしい!長年の希望がひとつかなった。
valuesも単独で使えるようになってるし、GJ
あとはwindow関数・・・
素晴らしい!長年の希望がひとつかなった。
valuesも単独で使えるようになってるし、GJ
あとはwindow関数・・・
318NAME IS NULL
2014/02/04(火) 11:05:12.45ID:??? SQLite3のデータファイルと言うのは、それ自体にバージョンの違いが有るのでしょうか?
それとも個々が持ってるDLLで決まるのですか?
それとも個々が持ってるDLLで決まるのですか?
319NAME IS NULL
2014/02/04(火) 12:21:38.27ID:???320NAME IS NULL
2014/02/04(火) 12:24:27.92ID:???321NAME IS NULL
2014/02/04(火) 12:50:03.65ID:??? フォーマットが変わるまで何もしなくて大丈夫なんですね
変わればDumpする
ファイルを触るプログラム側にバージョンの違いが有り
Access2013でmdbファイル操作するようなイメージなのかな
変わればDumpする
ファイルを触るプログラム側にバージョンの違いが有り
Access2013でmdbファイル操作するようなイメージなのかな
322NAME IS NULL
2014/02/04(火) 17:19:16.90ID:??? SQLite Release 3.8.3 On 2014-02-03 (3.8.3)
http://sqlite.org/releaselog/3_8_3.html
http://sqlite.org/releaselog/3_8_3.html
323NAME IS NULL
2014/02/04(火) 17:31:40.92ID:??? 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;
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;
324NAME IS NULL
2014/02/04(火) 17:37:07.20ID:??? 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
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
325NAME IS NULL
2014/02/06(木) 00:39:27.25ID:???326NAME IS NULL
2014/02/07(金) 11:35:14.49ID:??? >>303
実際やってみた
1個のファイル vs 3915個に分割したファイル
俺の予想では分割したほうが遅いだろうと思ってたけど、結果は逆だった
ただし1ファイル(1テーブル)に対して発行する程度の話
InnerJoinしてサブクエリ出すような場合、分割してると出来ないのだが
GoLangでAttachする方法がわかんない、まぁ必須では無いので良いけどね
実際やってみた
1個のファイル vs 3915個に分割したファイル
俺の予想では分割したほうが遅いだろうと思ってたけど、結果は逆だった
ただし1ファイル(1テーブル)に対して発行する程度の話
InnerJoinしてサブクエリ出すような場合、分割してると出来ないのだが
GoLangでAttachする方法がわかんない、まぁ必須では無いので良いけどね
327NAME IS NULL
2014/02/07(金) 11:46:47.08ID:??? 間違った、1個ファイルの方が全然速い
328NAME IS NULL
2014/02/07(金) 21:25:06.60ID:??? 実際にやってみるのはいいことだけど、結果は当たり前だわな
データファイルがでかくなってどうしようもなくなったら DBMS の機能でファイル分割するべき
データファイルがでかくなってどうしようもなくなったら DBMS の機能でファイル分割するべき
329NAME IS NULL
2014/02/12(水) 07:36:24.99ID:??? 3.8.3.1
330NAME IS NULL
2014/02/14(金) 16:38:14.53ID:??? 質問させて貰いたいんだけど、
SQLiteってファイルで保存されるけど、
それをそのまま他のSQLite入ってるコンピューターに送っても同じように挙動するの?
それともCSV形式とかに直したりして送らないといけない?
SQLiteってファイルで保存されるけど、
それをそのまま他のSQLite入ってるコンピューターに送っても同じように挙動するの?
それともCSV形式とかに直したりして送らないといけない?
331NAME IS NULL
2014/02/14(金) 17:18:34.60ID:??? 同じバージョンで操作するなら同じだよ
332NAME IS NULL
2014/02/14(金) 17:22:20.18ID:??? SQLite3どうしなら大丈夫って事だよね?
勿論、3.1.1と3.11.3とかバージョンが大きく違えば
仕様が変わったりでバグがあるかもしれないけれども
ありがと
勿論、3.1.1と3.11.3とかバージョンが大きく違えば
仕様が変わったりでバグがあるかもしれないけれども
ありがと
333NAME IS NULL
2014/02/14(金) 18:46:04.23ID:???334NAME IS NULL
2014/02/14(金) 20:35:54.23ID:??? 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
とすればいいのでしょうか?
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
とすればいいのでしょうか?
335NAME IS NULL
2014/02/14(金) 22:43:56.33ID:??? そのTKSQLiteとやらの作者に聞けばいいと思うよ。
# 「Tcl script」なる物をダウンロードしたのに
# >中身はシェルスクリプトのようです
# なんて言ってるレベルじゃあ、先にLinuxを勉強した方が良いと思うけど。
# 「Tcl script」なる物をダウンロードしたのに
# >中身はシェルスクリプトのようです
# なんて言ってるレベルじゃあ、先にLinuxを勉強した方が良いと思うけど。
336NAME IS NULL
2014/02/15(土) 03:47:59.50ID:??? >>334
後者だけど、URLにlinuxと入ってるのを落としてるよな?
win32とかosxとかの奴を落としてたら動かないのは当然だからな、対応OSが違う
それで動かなきゃ前者という話になるんだが
そのレベルだとTkSQLiteがTcl/Tkで出来ていると言ってもわからなさそうだな
後者で動かないなら素直に諦めとけ
後者だけど、URLにlinuxと入ってるのを落としてるよな?
win32とかosxとかの奴を落としてたら動かないのは当然だからな、対応OSが違う
それで動かなきゃ前者という話になるんだが
そのレベルだとTkSQLiteがTcl/Tkで出来ていると言ってもわからなさそうだな
後者で動かないなら素直に諦めとけ
337NAME IS NULL
2014/02/15(土) 19:02:59.81ID:??? SQLiteにBOM入れたらどうなるの?
338NAME IS NULL
2014/02/15(土) 19:33:05.62ID:??? 爆発すんじゃね
339NAME IS NULL
2014/02/15(土) 19:34:13.45ID:??? 入るよ。
340NAME IS NULL
2014/02/16(日) 12:33:27.03ID:??? 爆発するのはbomb
341NAME IS NULL
2014/02/18(火) 00:11:38.74ID:??? CREATE TABLE時にでもいいんだけど、文字コードをUTF-8に指定って出来ないの?
もし出来るならやり方教えてほしいんだけど
もし出来るならやり方教えてほしいんだけど
342NAME IS NULL
2014/02/18(火) 00:18:01.82ID:??? ん?
pragma encoding=utf8;
と言うのをCREATE TABLEの前に実行すればいいのかな?
pragma encoding=utf8;
と言うのをCREATE TABLEの前に実行すればいいのかな?
343NAME IS NULL
2014/02/18(火) 10:28:51.42ID:??? 何も指定してないなら基本的にutf8じゃないか?
pragma encodingで確認できるっしょ
あとsqlite側では一切コンバートしてくれないから注意
text指定しようが、blob指定しようがバイト列そのまま格納されるから
pragma encodingで確認できるっしょ
あとsqlite側では一切コンバートしてくれないから注意
text指定しようが、blob指定しようがバイト列そのまま格納されるから
344NAME IS NULL
2014/02/20(木) 16:47:39.61ID:OV/jiJYc SQLiteってMySQLみたいにユーザ名、パスワードを必要としないから、
基本的に誰でも中身を確認したり、いじったり出来るってことだよね?
基本的に誰でも中身を確認したり、いじったり出来るってことだよね?
345NAME IS NULL
2014/02/20(木) 17:06:46.66ID:??? そりゃファイルのパーミッションによるだろう
346NAME IS NULL
2014/02/20(木) 17:10:01.03ID:??? なるほど、SQLiteはパーミッションで制御するのね
347NAME IS NULL
2014/02/20(木) 17:39:01.36ID:??? バカじゃねーの
348NAME IS NULL
2014/02/20(木) 17:43:54.31ID:??? いろいろ混乱してるようです
349NAME IS NULL
2014/02/20(木) 17:45:36.47ID:??? じゃぁどうするんだ?
350NAME IS NULL
2014/02/20(木) 18:54:36.60ID:??? ファイルが弄れてフォーマットを知ってて連携の整合性を
保てるのであれば。はい。
っと言うことは・・・w
保てるのであれば。はい。
っと言うことは・・・w
351NAME IS NULL
2014/02/27(木) 09:22:21.76ID:??? 質問させてください。
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 です。
何が原因なのでしょうか?
他に何か方法などありませんでしょうか?
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 です。
何が原因なのでしょうか?
他に何か方法などありませんでしょうか?
352NAME IS NULL
2014/02/27(木) 10:30:25.28ID:??? nullなの?descなら
nullは最後に来るはずだけど。
nullじゃ無くて間違えて空文字入ってるんじゃないの?
空文字なら
order by val <> '' desc, val desc
とかやらないと駄目なんじゃない?
nullは最後に来るはずだけど。
nullじゃ無くて間違えて空文字入ってるんじゃないの?
空文字なら
order by val <> '' desc, val desc
とかやらないと駄目なんじゃない?
353NAME IS NULL
2014/02/27(木) 10:49:53.43ID:???354NAME IS NULL
2014/02/28(金) 13:33:20.39ID:??? select で where と order by を併用すると構文エラーって言われるんだけど、
条件で絞り込んだselectの結果を並び替えたい場合ってどうするの?
条件で絞り込んだselectの結果を並び替えたい場合ってどうするの?
355NAME IS NULL
2014/02/28(金) 14:10:42.09ID:??? 意味不明。
スレ違いだしsqlスレ行って可愛がってもらいなさい
スレ違いだしsqlスレ行って可愛がってもらいなさい
356NAME IS NULL
2014/03/12(水) 04:32:53.25ID:??? 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.
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.
357NAME IS NULL
2014/03/13(木) 10:39:33.96ID:dPrdAziV SQLiteをWindow Azureに配置して
ASP.NETで使いたいんですけど、
可能ですか?
ASP.NETで使いたいんですけど、
可能ですか?
358NAME IS NULL
2014/03/14(金) 04:17:26.54ID:??? >>357
Azure Webサイト上の PHP なら普通に SQLite 使えたけど。
Azure Webサイト上の PHP なら普通に SQLite 使えたけど。
359NAME IS NULL
2014/03/25(火) 21:16:58.60ID:TOFQ0YWL 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)...が呼ばれる。いつもそこで
クラスが登録されていません
とエラーになる。
だ、誰か 助けて
JavaScriptを用いて利用したいんだけどうまくいかない。
ビルドしたSQLite3.winmdをアプリから参照したし、SQLite3.jsもdefault.htmlにマークアップした。
しかし、default.jsから、
var dbPath = "sqliteファイルのパス";
SQLite3JS.openAsync(dbPath)...
とSQLite3.jsの関数を呼ぶと、
SQLite3.js内の401行辺りで SQLite3.Database.openAsync(dbPath)...が呼ばれる。いつもそこで
クラスが登録されていません
とエラーになる。
だ、誰か 助けて
360NAME IS NULL
2014/03/27(木) 06:42:20.71ID:??? Current Status
Version 3.8.4.2 of SQLite is recommended for all new development.
Upgrading from all other versions of SQLite is recommended.
Version 3.8.4.2 of SQLite is recommended for all new development.
Upgrading from all other versions of SQLite is recommended.
361NAME IS NULL
2014/04/13(日) 22:20:28.42ID:??? threadlocalsとcheck_same_threadオプションはどういった意味があるのでしょうか。
日本語の情報が見つからないためご説明いただけると嬉しいです。
日本語の情報が見つからないためご説明いただけると嬉しいです。
362NAME IS NULL
2014/04/17(木) 22:27:13.20ID:TYJAEJce テンポラリデータベースってどこに作成されるのでしょうか?
でもって、こいつの作成場所を明示的に指定できるのでしょうか?
教えてエロイ人
でもって、こいつの作成場所を明示的に指定できるのでしょうか?
教えてエロイ人
363NAME IS NULL
2014/04/17(木) 22:42:50.61ID:???364NAME IS NULL
2014/04/17(木) 23:25:53.45ID:??? ありがとうこざいます
365NAME IS NULL
2014/04/23(水) 12:50:32.46ID:??? 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.
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.
366NAME IS NULL
2014/05/15(木) 16:27:56.47ID:SDSKVU7U 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側でユニークな値を自動生成してほしい。
どうすればよいでしょうか?
CREATE TABLE "main"."TestTable" (
"a" INTEGER PRIMARY KEY NOT NULL,
"b" INTEGER NOT NULL
);
INSERT INTO TestTable Values ( 5 , newid())
*a はプログラム側がロジックにしたがって決定する
*b はDB側でユニークな値を自動生成してほしい。
367NAME IS NULL
2014/05/15(木) 18:24:09.78ID:??? integer primary key は明示的に値を設定しなければ勝手に入るのでは
368NAME IS NULL
2014/05/26(月) 10:48:59.60ID:??? インメモリDBを作り、それを別のプログラムから接続する事は出来ないんでしょうか?
369NAME IS NULL
2014/06/06(金) 08:30:12.62ID:0qswSBWs 2つ日付カラム(出来事の日、誕生日)があるとした場合、年齢計算はどうやりますか?
370369
2014/06/06(金) 10:28:21.04ID:??? ごめんなさい、出来ました。
ttp://dara-j.asablo.jp/blog/2007/09/24/1816593
ttp://dara-j.asablo.jp/blog/2007/09/24/1816593
371NAME IS NULL
2014/06/07(土) 09:51:01.72ID:???372NAME IS NULL
2014/06/07(土) 10:41:06.28ID:???373白バラ十字軍
2014/06/10(火) 15:43:53.50ID:gr7v9uKn 今では殺人事件凶悪事件が起こると創価員かというぐらい
ネットではささやかれる時代になりました。刑務所受刑者の33%は創価員という事実は有名な話ですが、以下を見れば納得ができます
創価員が裁かれる 判決の際 法廷にこだまする「 池 田 先 生 万 歳 !」
◎以下これ以外にまだまだ創価員の犯罪多数あり、書類送検されていないだけであなたの街でも多数すさまじい事件の数が
発生しましたし、まだまだ毎日のように創価員による凶悪事件は発生しているのです!
しかもこれ以外にもTVでも報道された凶悪事件多数あり!。あなたの周りにも潜んでいる。
危険です。危機的状況です。酒鬼薔薇だけではありません。実にたくさんいるのです
あなたの街でも善良な人間のように取り繕い潜んでいるのです。
●宅間守(在日)→大阪 附属池田小学校児童殺傷 創価学会員。大量殺人犯 。8人殺害 15人が重軽傷。悪徳 朝鮮人部落出身。
(悪徳カルト)両親も創価学会員。獄中結婚したが相手の女も創価員。さすが創価員は悪徳な者を好む。あえて結婚する
とは殺人破壊者を賛美、美化、擁護する行為 2004年死刑執行 獄中結婚した女は慰謝料損害賠償払ったのか?被害者に詫びたのか?
宅間は被害者に詫びていない。つまり・・・判決の際 法廷にこだまする「 池 田 先 生 万 歳 !」ということ
日本の犯罪史上、稀に見る大事件
●畠山鈴香 (在日)→秋田県児童連続殺害事件 創価学会員。悪徳。(悪徳カルト)
●斉藤勇太 →JR取手駅前バス無差別殺傷事件 創価学会員。悪徳。(悪徳カルト)
●酒鬼薔薇聖斗→ 東慎一郎(在日)神戸の首切り魔で酒鬼薔薇聖斗 創価学会員。神戸の首切り魔。生首を校門に飾る。悪徳2人殺害。
元在日朝鮮人。両親も創価学会員(悪徳カルト)
●福田孝行(在日)→山口県母子殺害 殺害後屍姦、乳児も殺害 創価学会員。悪徳(悪徳カルト)
●阿部隆 →長野母子バラバラ殺人事件(平成元年)船橋市幼児バラバラ殺人事件 千葉県船橋市の熱心な創価学会員・A・A子さんと長男
のHちゃんが、同じく学会員である夫のA・Tに殺された。動機は生活苦。バラバラにされた死体が聖教新聞に包まれ、長野県の山中に捨
てられていた 悪徳(悪徳カルト)
ネットではささやかれる時代になりました。刑務所受刑者の33%は創価員という事実は有名な話ですが、以下を見れば納得ができます
創価員が裁かれる 判決の際 法廷にこだまする「 池 田 先 生 万 歳 !」
◎以下これ以外にまだまだ創価員の犯罪多数あり、書類送検されていないだけであなたの街でも多数すさまじい事件の数が
発生しましたし、まだまだ毎日のように創価員による凶悪事件は発生しているのです!
しかもこれ以外にもTVでも報道された凶悪事件多数あり!。あなたの周りにも潜んでいる。
危険です。危機的状況です。酒鬼薔薇だけではありません。実にたくさんいるのです
あなたの街でも善良な人間のように取り繕い潜んでいるのです。
●宅間守(在日)→大阪 附属池田小学校児童殺傷 創価学会員。大量殺人犯 。8人殺害 15人が重軽傷。悪徳 朝鮮人部落出身。
(悪徳カルト)両親も創価学会員。獄中結婚したが相手の女も創価員。さすが創価員は悪徳な者を好む。あえて結婚する
とは殺人破壊者を賛美、美化、擁護する行為 2004年死刑執行 獄中結婚した女は慰謝料損害賠償払ったのか?被害者に詫びたのか?
宅間は被害者に詫びていない。つまり・・・判決の際 法廷にこだまする「 池 田 先 生 万 歳 !」ということ
日本の犯罪史上、稀に見る大事件
●畠山鈴香 (在日)→秋田県児童連続殺害事件 創価学会員。悪徳。(悪徳カルト)
●斉藤勇太 →JR取手駅前バス無差別殺傷事件 創価学会員。悪徳。(悪徳カルト)
●酒鬼薔薇聖斗→ 東慎一郎(在日)神戸の首切り魔で酒鬼薔薇聖斗 創価学会員。神戸の首切り魔。生首を校門に飾る。悪徳2人殺害。
元在日朝鮮人。両親も創価学会員(悪徳カルト)
●福田孝行(在日)→山口県母子殺害 殺害後屍姦、乳児も殺害 創価学会員。悪徳(悪徳カルト)
●阿部隆 →長野母子バラバラ殺人事件(平成元年)船橋市幼児バラバラ殺人事件 千葉県船橋市の熱心な創価学会員・A・A子さんと長男
のHちゃんが、同じく学会員である夫のA・Tに殺された。動機は生活苦。バラバラにされた死体が聖教新聞に包まれ、長野県の山中に捨
てられていた 悪徳(悪徳カルト)
374NAME IS NULL
2014/06/10(火) 23:37:18.44ID:???375NAME IS NULL
2014/06/11(水) 02:14:52.23ID:??? >>374
それは物理的な置き場がメモリになっただけで"インメモリDB"ではないよね…。
それは物理的な置き場がメモリになっただけで"インメモリDB"ではないよね…。
376NAME IS NULL
2014/06/13(金) 09:17:08.30ID:??? 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.
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.
377NAME IS NULL
2014/06/18(水) 11:06:47.42ID:/pFl4NPD 環境: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だけ除外ということが出来るようになるのでしょうか?
アドバイスいただけると助かります。
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だけ除外ということが出来るようになるのでしょうか?
アドバイスいただけると助かります。
378NAME IS NULL
2014/06/18(水) 11:31:08.68ID:??? 何を除外したいの?
WHERE で外せばいいだけでは
WHERE で外せばいいだけでは
379377
2014/06/18(水) 12:01:03.92ID:/pFl4NPD380NAME IS NULL
2014/06/18(水) 12:20:05.48ID:??? RANDOM() NOT IN ('1234')
だとRANDOM()の結果が'1234'以外は1が返るだけじゃないかな
SELECT sample_id FROM user_list WHERE sample_id NOT IN (1234) ORDER BY RANDOM() LIMIT 3;
こうならん?
だとRANDOM()の結果が'1234'以外は1が返るだけじゃないかな
SELECT sample_id FROM user_list WHERE sample_id NOT IN (1234) ORDER BY RANDOM() LIMIT 3;
こうならん?
381NAME IS NULL
2014/06/18(水) 23:39:59.17ID:b5gx/YIo すごく初心者で申し訳ありません。質問です
.txtに入っている|で区切ってある顧客情報をsqlite3を使ってテーブル作りたいです。import
filename table name をsqlite3.exeで実行して、テーブルを入れたデータベースをsqlitebrowser
でみてましたがなにもはいっていません。どうしたらよいでしょうか。。
。お願いします!!!
.txtに入っている|で区切ってある顧客情報をsqlite3を使ってテーブル作りたいです。import
filename table name をsqlite3.exeで実行して、テーブルを入れたデータベースをsqlitebrowser
でみてましたがなにもはいっていません。どうしたらよいでしょうか。。
。お願いします!!!
382NAME IS NULL
2014/06/18(水) 23:58:31.98ID:??? >>381
質問する時は情報を正確に。
・txtには何が入っている?
・どんなテーブルに格納しようとしている?
・importを実行した時に出たメッセージは?
・sqlitebrowserとやらで出たメッセージは?
質問する時は情報を正確に。
・txtには何が入っている?
・どんなテーブルに格納しようとしている?
・importを実行した時に出たメッセージは?
・sqlitebrowserとやらで出たメッセージは?
383NAME IS NULL
2014/06/19(木) 10:21:48.77ID:??? sqlite3.exe で .import したんだったら、その場で select * from tablename
してみるといい
してみるといい
384NAME IS NULL
2014/06/19(木) 12:50:27.04ID:??? sqliteってどのくらいの規模に耐えられますか?
385NAME IS NULL
2014/06/19(木) 15:56:46.20ID:??? 2GBまで
386NAME IS NULL
2014/06/19(木) 18:02:26.48ID:???387NAME IS NULL
2014/06/19(木) 20:31:18.65ID:??? DBサイズが多くなるとパフォーマンスって下がりますかね?
388381
2014/06/19(木) 21:16:13.91ID:eiPp00xe すいません 382さん、383さんありがとうございます。解決しました。
文字の規格の問題だったようです。ありがとうございました。
文字の規格の問題だったようです。ありがとうございました。
389NAME IS NULL
2014/06/19(木) 23:41:54.02ID:??? >>387
サイズはまあ、10Gとか20Gとかのレベルだったら平気
(でも、あんまり肥大化するなら他の(組み込み系じゃない)RDBMS使った方が良い)
それよりも個々のデータサイズとかアクセス回数が重要な気がする
SQLiteの性質上、全てのデータを単一のファイルに保存しているわけなので、
時間のかかるアクセス(=でかいデータ)を頻繁に行うとロック待ちが多発して性能が出ない
同時アクセス数が1ならその限りではないけどね
サイズはまあ、10Gとか20Gとかのレベルだったら平気
(でも、あんまり肥大化するなら他の(組み込み系じゃない)RDBMS使った方が良い)
それよりも個々のデータサイズとかアクセス回数が重要な気がする
SQLiteの性質上、全てのデータを単一のファイルに保存しているわけなので、
時間のかかるアクセス(=でかいデータ)を頻繁に行うとロック待ちが多発して性能が出ない
同時アクセス数が1ならその限りではないけどね
390NAME IS NULL
2014/06/20(金) 01:32:58.22ID:??? ファイル一個で管理出来る手軽さ をポイントにしたほうがいいね。
391NAME IS NULL
2014/06/27(金) 09:38:40.24ID:93MY7apK ◎2chスレッド勢いランキングサイトリスト◎
★+ニュース板
・ 2NN (推奨サイト)
・ 2chTimes
★+ニュース板新着
・ 2NN新着
・ Headline BBY
・ unker Headline
★+ニュース板その他
・ Desktop2ch
・ 記者別一覧
★全板
・ 全板縦断勢いランキング (推奨サイト)
・ スレッドランキング総合ランキング
・ ログ速
★全板実況込み
・ 2勢 (推奨サイト)
・ READ2CH
・ i-ikioi
※ 要タイトル検索
※ 2chブラウザ併用推奨
★+ニュース板
・ 2NN (推奨サイト)
・ 2chTimes
★+ニュース板新着
・ 2NN新着
・ Headline BBY
・ unker Headline
★+ニュース板その他
・ Desktop2ch
・ 記者別一覧
★全板
・ 全板縦断勢いランキング (推奨サイト)
・ スレッドランキング総合ランキング
・ ログ速
★全板実況込み
・ 2勢 (推奨サイト)
・ READ2CH
・ i-ikioi
※ 要タイトル検索
※ 2chブラウザ併用推奨
392マッチ棒
2014/06/30(月) 11:41:19.65ID:??? こんばんはお世話になります
mySQLとPHPで構築したデータを、SQLiteに移植したいと考えています。
mySQLのViewという機能は、どのように実現したらよいでしょうけ?
mySQLとPHPで構築したデータを、SQLiteに移植したいと考えています。
mySQLのViewという機能は、どのように実現したらよいでしょうけ?
393NAME IS NULL
2014/06/30(月) 12:31:16.83ID:??? SQLiteもVIEWあるべ?
394381
2014/06/30(月) 23:02:20.24ID:ixE6Je2A 初心者です。もしかしたらpythonの質問かもしれません。スレチだったらごめんなさい。
いまpython2.7からsqlite3で日本語のデータを含むテーブルを作りました。
これをpython上でpandas使ってみてみると文字化けすることなく見ることは出来ました。
しかしそのテーブルからstageという名のカラムに良好と書いてあるデータを取り出し
viewをつくろうと思い
cur.execute('create view viewname as select * from tablename where stage=良好)
としたのですが
OperationalError: near "繧キ繝ォ繝舌�": syntax error
とでてきて良好が文字化けしてしまいます
どうしたらよいでしょうか?おねがいします!!
いまpython2.7からsqlite3で日本語のデータを含むテーブルを作りました。
これをpython上でpandas使ってみてみると文字化けすることなく見ることは出来ました。
しかしそのテーブルからstageという名のカラムに良好と書いてあるデータを取り出し
viewをつくろうと思い
cur.execute('create view viewname as select * from tablename where stage=良好)
としたのですが
OperationalError: near "繧キ繝ォ繝舌�": syntax error
とでてきて良好が文字化けしてしまいます
どうしたらよいでしょうか?おねがいします!!
395NAME IS NULL
2014/07/01(火) 00:07:11.10ID:???396NAME IS NULL
2014/07/01(火) 09:13:36.84ID:mnQrmKyM UTF8をSJISで読んでる典型だな
397NAME IS NULL
2014/07/01(火) 09:15:18.90ID:mnQrmKyM だいたい、'良好' たろ
398NAME IS NULL
2014/07/01(火) 16:22:24.42ID:??? 文字化けを復元すると、「シルバ」、、、シルバーとかか
399NAME IS NULL
2014/07/01(火) 21:09:32.50ID:??? 文字化けを解読するクセはやめなさいw
400NAME IS NULL
2014/08/17(日) 00:46:15.35ID:??? 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.
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.
401NAME IS NULL
2014/08/19(火) 03:50:20.94ID:??? 何故か実装されてなかった16進数リテラルが実装されたか。
あとは排他的論理和演算子が何故実装されてないのかが謎
あとは排他的論理和演算子が何故実装されてないのかが謎
402NAME IS NULL
2014/09/21(日) 00:43:04.92ID:I6B1K8ho MySQLとか設計めんどくさいからSQLiteで済ましてしまう
403NAME IS NULL
2014/09/21(日) 01:29:22.93ID:??? ちゃちゃっとDBならSQLiteだわな
いちいちpgsqlにしようとは思わない
いちいちpgsqlにしようとは思わない
404NAME IS NULL
2014/09/21(日) 01:46:04.34ID:??? 排他処理を自分でしないとだからめんどっちい・・
405NAME IS NULL
2014/09/21(日) 01:56:15.89ID:??? え、排他処理は自動でされるぞ・・?
406NAME IS NULL
2014/09/21(日) 09:51:39.17ID:??? 共有フォルダとかだとぶつかる
407NAME IS NULL
2014/09/21(日) 13:05:14.66ID:??? だからちゃちゃっとですよ。
マルチプロセスとかマルチスレッドとかなると
いろいろ考えなければならんからね
いちお 大丈夫だけどね やっぱねw
マルチプロセスとかマルチスレッドとかなると
いろいろ考えなければならんからね
いちお 大丈夫だけどね やっぱねw
408NAME IS NULL
2014/09/21(日) 15:17:01.56ID:??? マルチスレッドで衝突する「排他処理」とは一体なにを「排他」しているのか…
409NAME IS NULL
2014/09/21(日) 17:10:18.53ID:???410NAME IS NULL
2014/09/21(日) 17:16:51.62ID:??? >>409
しょうがねえだろ、WindowsCEを現役で使ってんの
しょうがねえだろ、WindowsCEを現役で使ってんの
411NAME IS NULL
2014/09/21(日) 20:35:21.43ID:??? Oh..
412NAME IS NULL
2014/09/22(月) 22:53:39.82ID:??? "自分で作った排他処理"ほど信用ならないものはない
413NAME IS NULL
2014/09/23(火) 00:21:29.49ID:??? 排他処理にならないように使うのだ
414NAME IS NULL
2014/10/18(土) 03:57:47.71ID:??? 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
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
415NAME IS NULL
2014/10/19(日) 18:34:23.11ID:??? ユーザー認証拡張が興味深い
416NAME IS NULL
2014/10/20(月) 17:14:47.83ID:??? 小さな改善をコツコツ積み重ねたら20.3%高速化したってこと? すごいね。
417NAME IS NULL
2014/10/20(月) 22:24:19.30ID:??? 開発チームはいい仕事するね
でもオプティマイザの改善は使う側がへボイと逆に100倍遅くなるんこともあるんだ
もちろん俺のことさ
その改善バージョンのリリースノートにもご丁寧に書いてあったよ。インデックス張れってね
ハハハ
でもオプティマイザの改善は使う側がへボイと逆に100倍遅くなるんこともあるんだ
もちろん俺のことさ
その改善バージョンのリリースノートにもご丁寧に書いてあったよ。インデックス張れってね
ハハハ
418NAME IS NULL
2014/11/06(木) 01:03:53.85ID:??? 3.8.7.1 来てた
419NAME IS NULL
2014/11/06(木) 02:57:56.17ID:??? 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.
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.
420NAME IS NULL
2014/11/19(水) 22:18:26.92ID:+solJAhq 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.
・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.
421NAME IS NULL
2014/12/04(木) 12:10:10.16ID:??? Accessしか知らない無知で申し訳ない
このDBMSは、Accessのようにあらかじめクエリを登録しておき
後からそのクエリを呼び出す仕組みはないと理解してよいのかな?
何らかの言語から都度クエリ文字列をexecuteするしかない?
このDBMSは、Accessのようにあらかじめクエリを登録しておき
後からそのクエリを呼び出す仕組みはないと理解してよいのかな?
何らかの言語から都度クエリ文字列をexecuteするしかない?
422NAME IS NULL
2014/12/04(木) 14:59:30.95ID:???423NAME IS NULL
2014/12/04(木) 15:19:11.36ID:???424NAME IS NULL
2014/12/06(土) 23:04:14.40ID:LOwRbxtB SQLiteでのレコードの削除について質問させて下さい。
dateDataとflagというカラムが有り、
dateDataには201412061212といった値が入り、
flagには0か1の値が入ります。
flagが0でdateDataが最小値のレコードを1行だけ削除したい場合、
記述はどの様になりますでしょうか?
自分なりに調べて以下を記述したらエラーになりました。
delete from テーブル名 where flag = 0 order by dateData limit 1
どうぞ宜しくお願いします。
dateDataとflagというカラムが有り、
dateDataには201412061212といった値が入り、
flagには0か1の値が入ります。
flagが0でdateDataが最小値のレコードを1行だけ削除したい場合、
記述はどの様になりますでしょうか?
自分なりに調べて以下を記述したらエラーになりました。
delete from テーブル名 where flag = 0 order by dateData limit 1
どうぞ宜しくお願いします。
425NAME IS NULL
2014/12/06(土) 23:30:15.55ID:??? SQLite関係ないな
426NAME IS NULL
2014/12/07(日) 00:03:15.50ID:??? へぇー
これエラーになるのか
面白いな
これエラーになるのか
面白いな
427NAME IS NULL
2014/12/07(日) 00:38:28.95ID:??? 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] 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
428424
2014/12/07(日) 00:48:58.26ID:JECAD2Ur429NAME IS NULL
2014/12/07(日) 00:54:05.47ID:??? 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 オプションを付けて
コンパイルされたものではないのでしょう。
>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 オプションを付けて
コンパイルされたものではないのでしょう。
430NAME IS NULL
2014/12/07(日) 10:43:16.83ID:??? まあ最小のものからランダムに1件消すなんて普通はやらんしな。
一意になるカラム無いならサロゲートキーつけては
一意になるカラム無いならサロゲートキーつけては
432NAME IS NULL
2014/12/07(日) 11:44:36.21ID:??? 行と行の比較をするんだから、相関サブクエリ使うところじゃね?
433NAME IS NULL
2014/12/07(日) 12:09:28.77ID:??? まあ1件しか無いのなら、min()で1件ひけば済むことではあるな
434424
2014/12/07(日) 22:25:21.00ID:??? delete from テーブル名 where flag= 0 and dateData = (select min(dateData) from テーブル名 where flag= 0
で出来ました。
レスくれた方々ありがとうございました。
で出来ました。
レスくれた方々ありがとうございました。
435NAME IS NULL
2014/12/10(水) 23:35:36.34ID:??? 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.
Bug fix: Add in a mutex that was omitted from the previous release.
436あ
2014/12/25(木) 19:45:05.19ID:??? /:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ヽ
/:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::://ヽ:::::::::::::::|
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
/:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::://ヽ:::::::::::::::|
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
437NAME IS NULL
2015/01/16(金) 10:48:39.56ID:??? プログラミング歴は、10年以上になりますが
DBに関しては1年強レベルです。
で、質問なんですがSQLightを主に使っているんですが
命令文での、orとand文は、左結合ですか?
あと試した事は無いですがorとand文辺りは
カッコでくくっても認識してくれるんでしょうか?
どなたかご教示願います。
DBに関しては1年強レベルです。
で、質問なんですがSQLightを主に使っているんですが
命令文での、orとand文は、左結合ですか?
あと試した事は無いですがorとand文辺りは
カッコでくくっても認識してくれるんでしょうか?
どなたかご教示願います。
438NAME IS NULL
2015/01/16(金) 16:28:43.73ID:??? 10年以上もプログラミング歴がある割に
それくらい聞くより調べるほうが簡単で早くて正確だとわからないなんて……
それくらい聞くより調べるほうが簡単で早くて正確だとわからないなんて……
439NAME IS NULL
2015/01/16(金) 17:03:59.81ID:??? ネットがなかった頃からやってるんじゃね
本屋に買いに行って調べるより電話で聞く方が早いと思ってるんだろう
本屋に買いに行って調べるより電話で聞く方が早いと思ってるんだろう
440NAME IS NULL
2015/01/16(金) 17:09:53.39ID:??? とりあえず使ってるDBの名前を正しく覚えよう
441NAME IS NULL
2015/01/16(金) 19:53:53.11ID:??? こんな奴にプログラマとかSEとかIT技術者とかなんとかエンジニアとか名乗られたくないな。
存在が迷惑死、業界から消えてくれ。
存在が迷惑死、業界から消えてくれ。
442NAME IS NULL
2015/01/17(土) 07:50:19.49ID:??? 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.
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.
443NAME IS NULL
2015/01/21(水) 07:42:58.84ID:??? 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.
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.
444NAME IS NULL
2015/01/21(水) 21:26:58.85ID:??? バージョンアップが激しすぎてついていけない、、、
445NAME IS NULL
2015/03/01(日) 00:37:15.47ID:sjX82R5K >>440
神戸市の東、芦屋西宮の知的障害者施設で未成年利用者に性的な行為をして淫行条例で逮捕された三田谷学園元職員の堂垣直人(西宮市老松町)は、結局どういう罪になったの?
被害者家族のケアを芦屋市役所と兵庫県警はちゃんとやったのか?
差別や虐待は環境を選べない子供には関係ない。
http://www.youtube.com/watch?v=JxMzW3ZlV4g&sns=em
神戸市の東、芦屋西宮の知的障害者施設で未成年利用者に性的な行為をして淫行条例で逮捕された三田谷学園元職員の堂垣直人(西宮市老松町)は、結局どういう罪になったの?
被害者家族のケアを芦屋市役所と兵庫県警はちゃんとやったのか?
差別や虐待は環境を選べない子供には関係ない。
http://www.youtube.com/watch?v=JxMzW3ZlV4g&sns=em
446NAME IS NULL
2015/04/12(日) 02:47:56.57ID:??? .NET用は32ビットと64ビットのバイナリをまとめて欲しいなぁ・・・
447NAME IS NULL
2015/05/09(土) 17:01:37.72ID:ZgDS20Jy 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.
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.
448NAME IS NULL
2015/05/25(月) 10:34:24.59ID:aYoHQFUg 環境: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();
}
}
既存のテーブルのカラムの内容を参照して、別のカラムに計算結果を格納する、と言う処理を行おうとしています。
計算結果を格納するカラムを後から追加した都合で、追加前のデータも参照、更新対象になります。
以下のようなプログラムを組んだのですが、計算結果が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();
}
}
449NAME IS NULL
2015/05/25(月) 11:31:55.32ID:??? トランザクションのブロックの中でクローズしてるからアボート扱いになってない?
ってそれ以前にUpdateが0返してんのか。
こっちで追試するには情報が足りないな、自分で埋めてもいけどめんどい。
ってそれ以前にUpdateが0返してんのか。
こっちで追試するには情報が足りないな、自分で埋めてもいけどめんどい。
450NAME IS NULL
2015/06/28(日) 20:01:32.29ID:??? アンドロイドのSQLiteで6000件のデータ取るのに3秒かかるのって仕方ないですか
SQLかなんかおかしいですか
SQLかなんかおかしいですか
451NAME IS NULL
2015/06/28(日) 20:30:20.20ID:??? クエリがわからなくちゃ回答のしようが無い
452NAME IS NULL
2015/06/28(日) 20:57:16.44ID:??? あるテーブルの全データ取得のクエリならどうですか
1テーブルはLONG5個INT5個程度の小さいものです
3秒はかかりすぎな気がしますが
1テーブルはLONG5個INT5個程度の小さいものです
3秒はかかりすぎな気がしますが
453NAME IS NULL
2015/06/29(月) 22:28:26.88ID:??? 実際に再現する、最小限のサンプル出したほうが早いと思うの
454NAME IS NULL
2015/06/29(月) 23:21:42.08ID:??? 6,000件のレンダリングに 3秒かかってるってオチじゃないよな?
455NAME IS NULL
2015/06/30(火) 01:23:41.88ID:??? Rails あるあるだな。
456NAME IS NULL
2015/07/04(土) 00:01:09.03ID:???457NAME IS NULL
2015/07/05(日) 20:12:39.66ID:TKPBzH/E SQLiteはそれ自身はセキュアじゃないし更新処理に弱いって聞いたけど実際のところどうなん?
458NAME IS NULL
2015/07/06(月) 12:17:29.13ID:??? 弱い を論理的にどうぞ
459NAME IS NULL
2015/07/07(火) 08:33:31.65ID:??? SQLiteの欠点なんてネットにいくらでも情報が出てるだろ
少しは調べろっていう
少しは調べろっていう
460NAME IS NULL
2015/07/29(水) 17:04:24.74ID:??? sqliteって正規表現検索が無いんだな。
461NAME IS NULL
2015/07/30(木) 20:41:57.68ID:??? SQLite Release 3.8.11.1 On 2015-07-29
462NAME IS NULL
2015/08/01(土) 01:05:44.56ID:??? >>460
正規表現使えるように改造すると良いよ。
正規表現使えるように改造すると良いよ。
463NAME IS NULL
2015/08/06(木) 23:39:03.91ID:???464NAME IS NULL
2015/08/07(金) 14:04:24.44ID:l/2WsGXW データベース自体は単純な命令にのみ限定して
速度を上げるべき。データベースの出力結果を
phpやpythonの正規表現で処理すれば良いだけ。
速度を上げるべき。データベースの出力結果を
phpやpythonの正規表現で処理すれば良いだけ。
465NAME IS NULL
2015/08/13(木) 23:56:54.38ID:??? IN句に指定できるワード数は
Oracleは1000個、PostgreSQLは2000個、MySQLは上限なしとか決まっているようですが
SQLiteには制限ありますか
Oracleは1000個、PostgreSQLは2000個、MySQLは上限なしとか決まっているようですが
SQLiteには制限ありますか
466NAME IS NULL
2015/08/15(土) 22:45:27.21ID:??? >>465
100万ワードのin句を持つSQLをプログラム生成して試した。
select id from testtable where id in (1,2,3,....,1000000)
エラーにはならなかったよ。
100万ワードのin句を持つSQLをプログラム生成して試した。
select id from testtable where id in (1,2,3,....,1000000)
エラーにはならなかったよ。
467NAME IS NULL
2015/08/16(日) 00:00:18.86ID:??? 速度わ?
468NAME IS NULL
2015/08/16(日) 08:11:40.70ID:??? >>467
(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無印
(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無印
469NAME IS NULL
2015/08/16(日) 17:09:06.83ID:??? >>468
一箇所訂正
× 生成した SQL を sqlite3_exec で実行させて戻ってくるまでの時間
○ 生成した SQL を sqlite3_prepare_v2 で実行させて戻ってくるまでの時間
一箇所訂正
× 生成した SQL を sqlite3_exec で実行させて戻ってくるまでの時間
○ 生成した SQL を sqlite3_prepare_v2 で実行させて戻ってくるまでの時間
470NAME IS NULL
2015/08/16(日) 18:14:20.35ID:??? 速度の話が出ているので横から失礼します
Excelに接続出来る事を知りいろいろ調べているのですがリアルタイムに読み書きする時の速度はどんな感じでしょうか?
Excelに接続出来る事を知りいろいろ調べているのですがリアルタイムに読み書きする時の速度はどんな感じでしょうか?
471NAME IS NULL
2015/08/16(日) 21:01:55.98ID:??? そんなもんテーブル構造にもアクセス方法にもデータ量にもよりけりだから、自分で測った方が早いと思う。
472NAME IS NULL
2015/08/17(月) 00:05:25.74ID:??? ん?
prepareではクエリの解釈だけで実行はされなかったと思うが
prepareではクエリの解釈だけで実行はされなかったと思うが
473NAME IS NULL
2015/08/17(月) 16:29:35.95ID:???474NAME IS NULL
2015/08/19(水) 03:06:27.50ID:??? 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
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
475NAME IS NULL
2015/08/30(日) 07:03:03.87ID:??? 例えば2chのような巨大掲示板を運営するとして
ログにSQLite使うとします
普通は全体でDBを1つ用意するだけだと思いますが
DBってのは肥大するとSELECTも遅くなると思うので
お手軽SQLiteに限っては1スレッド1DBみたいなのでもいいんじゃないかと思ってるのですが
どうでしょう?やっぱおかしいですかね?
ログにSQLite使うとします
普通は全体でDBを1つ用意するだけだと思いますが
DBってのは肥大するとSELECTも遅くなると思うので
お手軽SQLiteに限っては1スレッド1DBみたいなのでもいいんじゃないかと思ってるのですが
どうでしょう?やっぱおかしいですかね?
476NAME IS NULL
2015/08/30(日) 08:31:17.57ID:??? >>475
基本的におかしい
サーバーはクライアントからのリクエストを見て
・url から該当のスレのデータベースを取得
・そのデータベースを開く
の操作が必要になる
もちろんレスのキャッシュや接続プールとかで高速化を図ればいいんだけど、なにか独自の技術でもない限りデータベース側に任せた方がいい
ビックデータ流行の時代なので巨大データに対する技術は色々開発されてる
基本的におかしい
サーバーはクライアントからのリクエストを見て
・url から該当のスレのデータベースを取得
・そのデータベースを開く
の操作が必要になる
もちろんレスのキャッシュや接続プールとかで高速化を図ればいいんだけど、なにか独自の技術でもない限りデータベース側に任せた方がいい
ビックデータ流行の時代なので巨大データに対する技術は色々開発されてる
477NAME IS NULL
2015/08/31(月) 09:03:32.19ID:??? >>475
串刺しで検索しないなら
串刺しで検索しないなら
478NAME IS NULL
2015/08/31(月) 11:58:52.90ID:??? こんな感じでフォームのテキストボックスにログ流して表示しているのですが
このログを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;
}
このログを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;
}
479NAME IS NULL
2015/08/31(月) 13:57:14.86ID:??? 普通に
INSERT INTO log (time, message) VALUES (CURRENT_TIMESTAMP, 'message')
でしょ、
C#でどうすればいいかという話?
それともエスケープ?
INSERT INTO log (time, message) VALUES (CURRENT_TIMESTAMP, 'message')
でしょ、
C#でどうすればいいかという話?
それともエスケープ?
480NAME IS NULL
2015/08/31(月) 15:37:16.36ID:??? >>479
すみません説明不足でした
流れてきた内容をログの先頭に挿入しているだけの処理なのですが、最後の行をinsert文に変えるだけでいけるのでしょうか?
DBを初めて組み込むのでよくわかりません
出来ればc#でお願いします
すみません説明不足でした
流れてきた内容をログの先頭に挿入しているだけの処理なのですが、最後の行をinsert文に変えるだけでいけるのでしょうか?
DBを初めて組み込むのでよくわかりません
出来ればc#でお願いします
481NAME IS NULL
2015/08/31(月) 16:36:56.23ID:??? 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順に意味は無いので、別のソート順を決めないとならんけど
現在時刻のカラム追加かオートインクリメントで数字入れとかね
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順に意味は無いので、別のソート順を決めないとならんけど
現在時刻のカラム追加かオートインクリメントで数字入れとかね
482NAME IS NULL
2015/08/31(月) 17:13:50.51ID:???483NAME IS NULL
2015/10/16(金) 00:45:05.82ID:??? 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
だってさ。
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
だってさ。
484NAME IS NULL
2015/10/16(金) 02:17:58.97ID:??? なんかNoSQLっぽくなったな
485NAME IS NULL
2015/10/17(土) 06:46:45.07ID:??? 3.9.1 release
486NAME IS NULL
2015/10/17(土) 11:02:12.52ID:??? JSON対応って、テーブルをJSONでダンプできるとかそういう機能じゃないんだな。
使いどころがよくわからん。
使いどころがよくわからん。
487NAME IS NULL
2015/11/01(日) 02:50:40.22ID:Iaqw8dbT sqlite4ってどうなの?
488NAME IS NULL
2016/01/07(木) 23:57:16.71ID:??? SQLite Release 3.10.0 On 2016-01-06
http://www.sqlite.org/releaselog/3_10_0.html
http://www.sqlite.org/releaselog/3_10_0.html
489NAME IS NULL
2016/01/14(木) 23:35:35.04ID:??? 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.
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.
490NAME IS NULL
2016/01/24(日) 10:39:11.64ID:sOgNYorS SQLite4はどうなっとんのや?
491NAME IS NULL
2016/01/24(日) 21:47:10.38ID:LKzcjvMc マ イ ン ド コ ン ト ロ ー ル の手法
・沢山の人が、偏った意見を一貫して支持する
偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法
・不利な質問をさせなくしたり、不利な質問には答えない、スルーする
誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法
偏った思想や考え方に染まっていたり、常識が通じない人間は、頭が悪いフリをしているカルト工作員の可能性が高い
靖 国 参 拝、皇 族、国 旗 国 歌、神 社 神 道を嫌う カ ル ト
10人に一人は カ ル ト か 外 国 人
「ガ ス ラ イ テ ィ ン グ」 で 検 索 を !
・沢山の人が、偏った意見を一貫して支持する
偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法
・不利な質問をさせなくしたり、不利な質問には答えない、スルーする
誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法
偏った思想や考え方に染まっていたり、常識が通じない人間は、頭が悪いフリをしているカルト工作員の可能性が高い
靖 国 参 拝、皇 族、国 旗 国 歌、神 社 神 道を嫌う カ ル ト
10人に一人は カ ル ト か 外 国 人
「ガ ス ラ イ テ ィ ン グ」 で 検 索 を !
492NAME IS NULL
2016/01/30(土) 12:28:01.09ID:??? 3.10.2(゚∀゚ 三 ゚∀゚)
493NAME IS NULL
2016/02/23(火) 01:52:36.36ID:???494NAME IS NULL
2016/03/02(水) 19:20:58.76ID:??? 桶屋が儲けた
495NAME IS NULL
2016/03/14(月) 09:42:49.16ID:UPQCYJfo sqliteってファイル作成時にあらかじめ任意のサイズを確保させることできる?
例えば…なんだろう、仮想環境のディスク領域みたいに
例えば…なんだろう、仮想環境のディスク領域みたいに
496NAME IS NULL
2016/03/14(月) 10:20:19.81ID:??? page_size(バイト) * max_page_count = 任意のサイズ
PRAGMA page_sizeでページサイズを確認してそれにあったmax_page_countを設定する
PRAGMA max_page_count=N
PRAGMA page_sizeでページサイズを確認してそれにあったmax_page_countを設定する
PRAGMA max_page_count=N
497NAME IS NULL
2016/03/14(月) 12:07:43.42ID:???498NAME IS NULL
2016/03/15(火) 19:15:46.57ID:??? 型無くて好き。
499NAME IS NULL
2016/03/15(火) 20:04:07.05ID:??? 一個のファイルで出来るのがいいね
500NAME IS NULL
2016/03/15(火) 20:09:55.84ID:??? SQL使って抽出できるものの中では最速なのがいい
501NAME IS NULL
2016/03/19(土) 22:04:24.02ID:??? real型のカラムをWHERE句で取得したいんですが取れてきません
LIKE句なら取れてきます。WHERE句で取得するにはどうすればいいでしょうか?
WHERE hogeID = '11111.11111'を
WHERE hogeID = cast(11111.11111 as REAL);
とかしてもダメでした
LIKE句なら取れてきます。WHERE句で取得するにはどうすればいいでしょうか?
WHERE hogeID = '11111.11111'を
WHERE hogeID = cast(11111.11111 as REAL);
とかしてもダメでした
502NAME IS NULL
2016/03/19(土) 22:34:14.68ID:??? ヒント:精度
503NAME IS NULL
2016/03/19(土) 23:13:15.64ID:??? 桁を落としてやってみよー
504NAME IS NULL
2016/03/19(土) 23:38:29.09ID:??? ありがとうございます。やってみます
505NAME IS NULL
2016/03/25(金) 21:16:01.75ID:??? 前から気になってたんですが、
SQLiteってパーミッションの概念って無いんですか?
例えばcreateでSQLite用のファイル作成する時、
ディレクトリに書き込み権限がないと駄目とか。
SQLiteってパーミッションの概念って無いんですか?
例えばcreateでSQLite用のファイル作成する時、
ディレクトリに書き込み権限がないと駄目とか。
506NAME IS NULL
2016/03/25(金) 22:45:09.10ID:??? 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.
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.
507NAME IS NULL
2016/03/26(土) 07:56:25.18ID:??? >>505
それってOSとかファイルシステムの話だろ
それってOSとかファイルシステムの話だろ
508NAME IS NULL
2016/03/26(土) 11:28:20.63ID:??? そら書き込み権限の無いディレクトリにプログラムがどう頑張ったって・・・
データファイルとして、適当なディレクトリに置けばいい。
データファイルとして、適当なディレクトリに置けばいい。
509NAME IS NULL
2016/03/26(土) 18:01:41.69ID:??? >>506-508
つまり、SQLite使う場合は、予め保存先のディレクトリのパーミッションに、
書き込み権限を与えて送って認識でOKですか?
MySQLなんかだとパーミッションの概念がありませんが、
SQLiteの場合は、CSVファイルの読み書きと同様、パーミッション指定が必要なんですね
つまり、SQLite使う場合は、予め保存先のディレクトリのパーミッションに、
書き込み権限を与えて送って認識でOKですか?
MySQLなんかだとパーミッションの概念がありませんが、
SQLiteの場合は、CSVファイルの読み書きと同様、パーミッション指定が必要なんですね
510NAME IS NULL
2016/03/26(土) 18:16:48.24ID:??? RDBMSじゃなくて、単なるライブラリであり、DB本体が単なるファイルですからね。
私はpostgreSQL派ですけど、SQLiteは単純に使えて、共存も出来るんで使ってます。
私はpostgreSQL派ですけど、SQLiteは単純に使えて、共存も出来るんで使ってます。
511NAME IS NULL
2016/03/26(土) 20:51:35.43ID:???512NAME IS NULL
2016/03/26(土) 22:01:39.34ID:??? 事前にtouchとかで作っときゃディレクトリの書き込み権限いらん
もちろんtouchする時のアカウントが権限ないとダメだし
ファイル自身のパーミッションも必要だが
もちろんtouchする時のアカウントが権限ないとダメだし
ファイル自身のパーミッションも必要だが
513NAME IS NULL
2016/03/27(日) 11:50:19.14ID:???514NAME IS NULL
2016/03/27(日) 15:21:22.73ID:??? まあSQLiteはDBアクセスするクライアントが直接DB操作するけど
MySQLはデーモンになってるからサーバープロセスを起動したユーザーの権限
もしくはchrootで移譲したユーザーの権限で動くからクライアントの実行ユーザーとは別物だわな
MySQLはデーモンになってるからサーバープロセスを起動したユーザーの権限
もしくはchrootで移譲したユーザーの権限で動くからクライアントの実行ユーザーとは別物だわな
515NAME IS NULL
2016/03/30(水) 23:56:31.27ID:I9xFCFeI516NAME IS NULL
2016/03/31(木) 00:36:55.32ID:??? おお
517NAME IS NULL
2016/04/09(土) 14:23:38.52ID:??? 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.
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.
518NAME IS NULL
2016/04/09(土) 15:03:28.78ID:??? はや
519NAME IS NULL
2016/04/19(火) 20:30:38.78ID:??? 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.
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.
520NAME IS NULL
2016/04/19(火) 20:47:52.74ID:??? 群発か
521NAME IS NULL
2016/04/25(月) 01:32:55.95ID:??? エクセルから試行してるものですが
カラム50個程あるデータ(100万レコードくらい)の
selectで名前から参照のカラムを全部抜き出す事はできますか?
試したら名前しか出てこなくて困ってるんですが(ググっても同様な質問も見当たらず)
カラム50個程あるデータ(100万レコードくらい)の
selectで名前から参照のカラムを全部抜き出す事はできますか?
試したら名前しか出てこなくて困ってるんですが(ググっても同様な質問も見当たらず)
522NAME IS NULL
2016/04/25(月) 09:04:07.71ID:??? エクセルからというのがよくわからんけど普通にできる
どうやったの?
どうやったの?
523NAME IS NULL
2016/04/25(月) 12:14:22.41ID:??? SQLiteForExcelってやつか
524NAME IS NULL
2016/04/26(火) 21:54:12.16ID:??? localDBとどっちがいいの?
525NAME IS NULL
2016/04/26(火) 22:13:28.08ID:??? >>524
こっち
こっち
526NAME IS NULL
2016/04/26(火) 22:16:31.29ID:??? localDBって今知った。
ソースの公開されてる方がいいけどね。
ソースの公開されてる方がいいけどね。
527NAME IS NULL
2016/04/26(火) 22:21:41.00ID:??? >>525
理由を三つくらい教えてちょんまげ
理由を三つくらい教えてちょんまげ
528NAME IS NULL
2016/04/27(水) 13:32:46.98ID:??? >>527
・知名度
知名度とは検索しやすさであり情報量の多さ
・マルチプラットフォーム
Windowsだけじゃなくどこでもなんででも動く便利さ
・拡張性、ツールの充実
関数追加とか簡単だし編集ソフトいっぱいあるし
・知名度
知名度とは検索しやすさであり情報量の多さ
・マルチプラットフォーム
Windowsだけじゃなくどこでもなんででも動く便利さ
・拡張性、ツールの充実
関数追加とか簡単だし編集ソフトいっぱいあるし
529NAME IS NULL
2016/04/27(水) 14:24:48.52ID:??? ファイル一個で完結してるの一番凄いと思う。
物理的にもオブジェクト指向みたいな。
物理的にもオブジェクト指向みたいな。
530NAME IS NULL
2016/04/27(水) 19:00:55.11ID:???531NAME IS NULL
2016/05/20(金) 10:40:49.14ID:???532NAME IS NULL
2016/05/20(金) 10:42:09.01ID:??? ごめん間違えた。
3.13.0 です。
3.13.0 です。
533NAME IS NULL
2016/07/02(土) 15:49:26.40ID:??? SQLite4のサイトって、去年からずっと更新されてないけど、計画自体取りやめになったの?
534NAME IS NULL
2016/07/02(土) 16:48:39.66ID:??? そんなぁ
535NAME IS NULL
2016/07/16(土) 09:59:10.20ID:??? エクセルのシートがわりに使うとさいこー
536NAME IS NULL
2016/07/17(日) 20:40:39.11ID:??? >>535
だったらエクセルシート使う方が良いんじゃない?
だったらエクセルシート使う方が良いんじゃない?
537NAME IS NULL
2016/07/17(日) 21:18:53.29ID:??? >>535
どんな感じで使うのぉ?
どんな感じで使うのぉ?
538NAME IS NULL
2016/07/18(月) 09:00:47.12ID:???539NAME IS NULL
2016/07/18(月) 18:17:44.06ID:??? エクセルの代わりにならないじゃん
540NAME IS NULL
2016/07/18(月) 18:55:34.41ID:???541NAME IS NULL
2016/07/18(月) 20:13:02.54ID:??? むぅわかったようなわからんような。
542NAME IS NULL
2016/07/18(月) 20:20:58.74ID:???543NAME IS NULL
2016/07/18(月) 21:09:55.50ID:??? sqlite自体ライブラリとツール群だからな。
なんとなくわかった かなと。
なんとなくわかった かなと。
544NAME IS NULL
2016/07/18(月) 21:39:06.41ID:??? google spreadsheetでええやん
545NAME IS NULL
2016/07/18(月) 21:44:29.99ID:???546NAME IS NULL
2016/08/11(木) 11:01:44.25ID:k39hn/xF547NAME IS NULL
2016/08/11(木) 11:52:04.30ID:??? 堅調にやってて乙
548NAME IS NULL
2016/09/14(水) 19:59:55.07ID:8llEaiLn 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.
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.
549NAME IS NULL
2016/09/14(水) 20:56:26.06ID:??? いいね
550NAME IS NULL
2016/10/02(日) 17:48:55.17ID:??? 手元のactiveperl5.24にDBD-mySQLが無かったがDBD-SQLiteがあったので使ってみた
個人で遊ぶなら快適だw
個人で遊ぶなら快適だw
551NAME IS NULL
2016/10/02(日) 18:13:40.47ID:??? 一個のファイルですしぃ
552NAME IS NULL
2016/10/16(日) 10:38:06.33ID:??? SQLite Release 3.15.0 On 2016-10-14
https://sqlite.org/releaselog/3_15_0.html
https://sqlite.org/releaselog/3_15_0.html
553NAME IS NULL
2016/10/16(日) 11:14:51.80ID:??? がんばれ〜
554NAME IS NULL
2016/10/21(金) 13:12:22.57ID:kSyZhxSg 俺も最近使い始めた。
OS Linuxmint18MATEでな。
PostgresqlやmySQLと違い日本語が入力できるのがいい。
OS Linuxmint18MATEでな。
PostgresqlやmySQLと違い日本語が入力できるのがいい。
555NAME IS NULL
2016/10/21(金) 14:19:33.94ID:??? >>554
mysql日本語書けるやん?
mysql日本語書けるやん?
556NAME IS NULL
2016/10/21(金) 16:41:15.74ID:??? 否、2箇所ばかりutf8に成らなかったからダメ
557NAME IS NULL
2016/10/21(金) 22:56:16.13ID:PJ+SYe3B >>555
OSはWindowsかね?
OSはWindowsかね?
558NAME IS NULL
2016/10/22(土) 00:17:48.93ID:???559NAME IS NULL
2016/10/22(土) 00:26:10.56ID:??? どこで日本語で記述するかという事だな。
560NAME IS NULL
2016/10/22(土) 07:50:31.60ID:9o+gdt6B latinをutf8又は、sjisに変えなきゃいけないはずだが、Linux環境だと
うまく行かない。
なんのこと言ってるか解らないのなら黙ってろ。
うまく行かない。
なんのこと言ってるか解らないのなら黙ってろ。
561NAME IS NULL
2016/10/22(土) 07:51:30.93ID:9o+gdt6B SQLite使いやすいな
562NAME IS NULL
2016/10/30(日) 20:20:37.99ID:??? >>561
セキュリティもへったくれもないけどね。
セキュリティもへったくれもないけどね。
563NAME IS NULL
2016/10/30(日) 20:24:59.42ID:??? liteに使いましょう
564NAME IS NULL
2016/10/30(日) 21:43:01.80ID:??? >>562
実体は単一ファイルをなんだから適切にアクセス権を設定すればいいだけ
実体は単一ファイルをなんだから適切にアクセス権を設定すればいいだけ
565NAME IS NULL
2016/10/30(日) 21:44:43.76ID:??? ファイル自体も暗号は掛けられないんでしたっけ?
566NAME IS NULL
2016/10/31(月) 06:17:38.72ID:tmLBVYkg DB Brouser for SQLight(データベースエンジンはSQliteでもSQlite3どちらでもok)
とAOOのBaseを使っている。
SQliteやSQlite3を生では使っていない。
生で使ってる人いるのかな?
とAOOのBaseを使っている。
SQliteやSQlite3を生では使っていない。
生で使ってる人いるのかな?
567NAME IS NULL
2016/10/31(月) 06:45:46.67ID:??? 暗号化をサポートしてるファイルシステムなんていくらでもあるけど?
568NAME IS NULL
2016/10/31(月) 10:58:18.64ID:??? ファイル盗まれた場合の話?
569NAME IS NULL
2016/11/21(月) 21:08:34.31ID:??? winのコマンドラインでsqlite3.exe使ってるが、正規表現のdllどっかにない?
今使ってるのが、where regexp( string, pattern ) で使える奴なんだけど、SQL99標準の、 where string regexp pattern で使える奴がいい。
C++のコンパイルとかよう分からん。コンパイル済みの配布してるとこない?
今使ってるのが、where regexp( string, pattern ) で使える奴なんだけど、SQL99標準の、 where string regexp pattern で使える奴がいい。
C++のコンパイルとかよう分からん。コンパイル済みの配布してるとこない?
570NAME IS NULL
2016/11/23(水) 19:54:29.47ID:DiJKqqHt >>562
OpenSSLライブラリで格納データ自体を暗号化すればセキュリティは無敵だよ
OpenSSLライブラリで格納データ自体を暗号化すればセキュリティは無敵だよ
571NAME IS NULL
2016/11/23(水) 21:24:50.88ID:??? とにかくファイル一個だし
572NAME IS NULL
2016/11/25(金) 22:12:58.18ID:r96MQ2A1 そもそもデータベースじゃなくてファイル検索ライブラリだし
573NAME IS NULL
2016/11/26(土) 05:59:05.59ID:??? なんと的確なw
574NAME IS NULL
2016/12/02(金) 15:54:32.19ID:kHH37Mmu >>496を見つけてやってみたけどpragma設定は変わるがサイズが変わらん
公式のpragmaマニュアル読んだけど
これ上限設定するだけであらかじめ領域を確保するわけじゃないよな・・・
領域確保って無理なん?大量データ突っ込んでからdeleteするのはナシで
公式のpragmaマニュアル読んだけど
これ上限設定するだけであらかじめ領域を確保するわけじゃないよな・・・
領域確保って無理なん?大量データ突っ込んでからdeleteするのはナシで
575NAME IS NULL
2016/12/03(土) 11:28:12.04ID:??? そんなんsql1つで気軽にできたらHDD埋め尽くすウイルスみたいな振る舞いになっちゃうじゃないか
576NAME IS NULL
2017/01/03(火) 22:16:52.69ID:WLXYicRb SQLite Release 3.16.0 On 2017-01-02
http://www.sqlite.org/releaselog/3_16_0.html
http://www.sqlite.org/releaselog/3_16_0.html
577NAME IS NULL
2017/01/04(水) 07:34:11.30ID:BY1GrNy1 SQLite Release 3.16.1 On 2017-01-03
https://sqlite.org/releaselog/3_16_1.html
https://sqlite.org/releaselog/3_16_1.html
578NAME IS NULL
2017/01/07(土) 19:45:53.97ID:??? WHERE句について教えてください。
WHERE (A, B) IN ...
というようなことをしたいのですがSQL文法エラーになってしまいます。
WHERE句で、複数のカラムを括弧で括ることができないようなのです。
同等のことをするには、どのように書いたら良いのでしょうか?
WHERE (A, B) IN ...
というようなことをしたいのですがSQL文法エラーになってしまいます。
WHERE句で、複数のカラムを括弧で括ることができないようなのです。
同等のことをするには、どのように書いたら良いのでしょうか?
579NAME IS NULL
2017/01/07(土) 20:17:03.63ID:??? AとBを結合すりゃいいんじゃね
580NAME IS NULL
2017/01/07(土) 21:29:52.61ID:???581NAME IS NULL
2017/01/07(土) 22:57:02.36ID:??? SQLite Release 3.16.2 On 2017-01-06
http://www.sqlite.org/releaselog/3_16_2.html
http://www.sqlite.org/releaselog/3_16_2.html
582NAME IS NULL
2017/01/07(土) 22:59:43.97ID:??? いっぱいでるぅ
583NAME IS NULL
2017/01/08(日) 08:53:31.25ID:??? >>579, 580
やり方色々あるんですね。
とても参考になりました。
ありがとうございます。
ところで、
>> In の右辺が select なら exist
って具体的にはWHERE句にどう書くのでしょうか?
やり方色々あるんですね。
とても参考になりました。
ありがとうございます。
ところで、
>> In の右辺が select なら exist
って具体的にはWHERE句にどう書くのでしょうか?
584NAME IS NULL
2017/01/08(日) 11:26:10.96ID:??? SELECT * FROM HOGE
WHERE EXISTS(SELECT * FROM FUGA WHERE HOGE.A = FUGA.A AND HOGE.B = FUGA.B)
WHERE EXISTS(SELECT * FROM FUGA WHERE HOGE.A = FUGA.A AND HOGE.B = FUGA.B)
585NAME IS NULL
2017/01/09(月) 12:41:36.74ID:???586NAME IS NULL
2017/01/09(月) 15:11:12.56ID:??? >>584
横からですが、とん
横からですが、とん
587NAME IS NULL
2017/02/08(水) 09:16:30.67ID:ib/65+FH explainの見方がよくわからないのですが、
よくわからない人は、どこ見てそれがいいSQLであると判断すればいいですか?
ステップ(addr)の数が少なければ少ないほどいいってことでしょうか?
アプリケーションから実行速度を測る事はできるのですが、
純粋なSQLの実行速度を知りたいのですが、何か方法ありますか?
よくわからない人は、どこ見てそれがいいSQLであると判断すればいいですか?
ステップ(addr)の数が少なければ少ないほどいいってことでしょうか?
アプリケーションから実行速度を測る事はできるのですが、
純粋なSQLの実行速度を知りたいのですが、何か方法ありますか?
588NAME IS NULL
2017/02/08(水) 12:43:05.00ID:??? 複数行insertでprepared statementを使おうとしたら999制限に引っかかって挿入出来ません
何か良い解決策はありませんか?
何か良い解決策はありませんか?
589NAME IS NULL
2017/02/08(水) 14:08:11.63ID:??? SQLITE_LIMIT_VARIABLE_NUMBER 変更するとか?
590NAME IS NULL
2017/02/09(木) 19:02:21.92ID:7X6c6aZo591NAME IS NULL
2017/02/14(火) 02:29:06.57ID:lj49aSQw592NAME IS NULL
2017/03/18(土) 06:19:56.54ID:??? SQLiteに保存する文字コードは、UTF-8が基本ですか?
SJISを保存すると問題おきますでしょうか?
SJISを保存すると問題おきますでしょうか?
593NAME IS NULL
2017/03/18(土) 09:45:20.02ID:???594NAME IS NULL
2017/04/11(火) 17:38:40.65ID:??? SQLiteにSJISで保存すると何か問題が起きるんですか?
ホントなら具体例を教えてください。
ホントなら具体例を教えてください。
595NAME IS NULL
2017/05/23(火) 22:36:11.99ID:???596NAME IS NULL
2017/05/24(水) 07:42:43.39ID:??? >>592
DBのエンコーディングがutf8かutf16ってだけで
同じテーブルに別々の文字コード入れようがsjisで格納しようが別に不具合は起きない
当然そのままだと文字化けを起こす可能性があるが
それをどうするかはアプリケーション側の問題
DBのエンコーディングがutf8かutf16ってだけで
同じテーブルに別々の文字コード入れようがsjisで格納しようが別に不具合は起きない
当然そのままだと文字化けを起こす可能性があるが
それをどうするかはアプリケーション側の問題
597NAME IS NULL
2017/05/24(水) 21:23:46.06ID:???598NAME IS NULL
2017/05/25(木) 10:39:50.92ID:??? どのDBもクライアントのエンコーディングは意識しないとだけど
それはDBのエンコーディングとは別の話
それはDBのエンコーディングとは別の話
599597
2017/05/25(木) 18:32:52.30ID:??? >>598
ごめんちょっと言い方が足りなかった。
マルチバイト文字列のSQL文を、DB側が正しく構文解析してるれるかなぁ・・・という質問でした。
たとえば、SELECT... WHERE xxx like '〇〇〇%';
というSQL文の場合、「〇〇〇」を正しく解釈し、次の文字の「%」を認識してくれるのかなぁという心配です。
〇がどんなマルチバイト文字でも大丈夫なのかな?
ごめんちょっと言い方が足りなかった。
マルチバイト文字列のSQL文を、DB側が正しく構文解析してるれるかなぁ・・・という質問でした。
たとえば、SELECT... WHERE xxx like '〇〇〇%';
というSQL文の場合、「〇〇〇」を正しく解釈し、次の文字の「%」を認識してくれるのかなぁという心配です。
〇がどんなマルチバイト文字でも大丈夫なのかな?
600NAME IS NULL
2017/05/25(木) 18:44:27.94ID:??? うーん、、そのつもりで答えたんだけどな
クライアントの環境によるだろうけど、固定文字コードかロケールで切り替えるようになってるはずで
そのコードに沿ってないとSQL解釈も期待どおりにならない可能性はあるね
クライアントの環境によるだろうけど、固定文字コードかロケールで切り替えるようになってるはずで
そのコードに沿ってないとSQL解釈も期待どおりにならない可能性はあるね
601NAME IS NULL
2017/05/25(木) 18:47:20.11ID:??? ちなみにクライアント側が文字コードあってれば
サーバの文字コードに変換するのはクライアントの役目
通常サーバ側の文字コードはクライアントから切り替えられるようになってるので問題ないが
SQLiteの場合サーバ側の処理もクライアントがやるからそれだけ合わせとけばいいかと
サーバの文字コードに変換するのはクライアントの役目
通常サーバ側の文字コードはクライアントから切り替えられるようになってるので問題ないが
SQLiteの場合サーバ側の処理もクライアントがやるからそれだけ合わせとけばいいかと
602NAME IS NULL
2017/05/26(金) 08:02:08.57ID:a747thsW603NAME IS NULL
2017/06/09(金) 02:35:11.50ID:kmOrKnhg604NAME IS NULL
2017/06/09(金) 19:27:52.36ID:HI+OVZBi 日本と海外のユーチューバーは収入の仕組みが違う?!どっちが儲かるか?
http://youtube-youtuber.com/360.html
日本の従来型のユーチューバーは、広告収入をメインの収入源としています
1.動画にのせる広告(動画広告+画像広告)からの報酬や
2.スポンサー収入(企業からの依頼を受けて商品を紹介)
海外のユーチューバーの傾向として、広告収入ではなく、自分のビジネスを
メインにすることによって広告収入を遥かに超える収入を叩き出しています。
例えば、beauty guru(美のカリスマ)と謳われる、ユーチューバーのミシェル・ファンは
広告収入は1800万得ていますが・・他方で美容化粧品会社Ipsyを立ち上げて、
年収1億ドル(約110億円)を売り上げました。
彼女は「メイクのチュートリアル動画」を投稿していますが、動画の中で自分の会社の商品を
使っているんです。
そしてその中で使った商品を、online shopで買える仕組みにしています。
他人の商品を紹介して、そこから「おこぼれ」を貰うより、自分の商品を売った方が
遥かに儲かりますからね。
リンジー・スターリングは踊りながら、バイオリンを演奏する、アーティストですが・・・
彼女の場合も、あくまでも動画を投稿するのは、自分のビジネスである、
ツアーチケットやアルバムの販売のためなのです。
http://youtube-youtuber.com/360.html
日本の従来型のユーチューバーは、広告収入をメインの収入源としています
1.動画にのせる広告(動画広告+画像広告)からの報酬や
2.スポンサー収入(企業からの依頼を受けて商品を紹介)
海外のユーチューバーの傾向として、広告収入ではなく、自分のビジネスを
メインにすることによって広告収入を遥かに超える収入を叩き出しています。
例えば、beauty guru(美のカリスマ)と謳われる、ユーチューバーのミシェル・ファンは
広告収入は1800万得ていますが・・他方で美容化粧品会社Ipsyを立ち上げて、
年収1億ドル(約110億円)を売り上げました。
彼女は「メイクのチュートリアル動画」を投稿していますが、動画の中で自分の会社の商品を
使っているんです。
そしてその中で使った商品を、online shopで買える仕組みにしています。
他人の商品を紹介して、そこから「おこぼれ」を貰うより、自分の商品を売った方が
遥かに儲かりますからね。
リンジー・スターリングは踊りながら、バイオリンを演奏する、アーティストですが・・・
彼女の場合も、あくまでも動画を投稿するのは、自分のビジネスである、
ツアーチケットやアルバムの販売のためなのです。
605NAME IS NULL
2017/06/18(日) 17:51:34.06ID:??? ついにV4が来てしまったようだな。
これでDB界のパワーバランスが変わる。
これでDB界のパワーバランスが変わる。
606NAME IS NULL
2017/06/18(日) 19:16:36.85ID:??? え?
まだ3.19じゃないの?
まだ3.19じゃないの?
607NAME IS NULL
2017/06/18(日) 21:32:39.55ID:??? https://sqlite.org/src4/doc/trunk/www/index.wiki
まだ作業中なのかな。でもじきに出るだろう
まだ作業中なのかな。でもじきに出るだろう
608NAME IS NULL
2017/06/18(日) 22:08:31.74ID:??? (゚∀゚ 三 ゚∀゚)、
609NAME IS NULL
2017/06/21(水) 22:57:56.93ID:4A99RJhE >>605
おぉ!
おぉ!
610NAME IS NULL
2017/06/22(木) 04:27:42.58ID:??? よしオラクルを空売りしよう!
611NAME IS NULL
2017/06/22(木) 23:52:30.19ID:??? 4だとZIPVFSが無償で使えたりしないかなw
612NAME IS NULL
2017/06/23(金) 20:53:47.60ID:??? numeric 型が気になるなぁ
613NAME IS NULL
2017/06/26(月) 05:02:46.43ID:??? おぉ!
614NAME IS NULL
2017/07/07(金) 19:31:51.69ID:??? 4番ファースト
615NAME IS NULL
2017/07/08(土) 09:01:20.67ID:P1W8iwhy >>605
ストアドプロシージャとか使える?
ストアドプロシージャとか使える?
616NAME IS NULL
2017/08/02(水) 07:53:36.80ID:ASDOYwkw617NAME IS NULL
2017/08/11(金) 08:00:27.63ID:??? ファイルシステムよりも35%高速に
ttp://postd.cc/faster-than-fs/
ttp://postd.cc/faster-than-fs/
618NAME IS NULL
2017/08/12(土) 00:57:24.03ID:??? なんだと
619NAME IS NULL
2017/08/29(火) 18:43:15.91ID:??? sqliteだと、managementstudioみたいなツールは何が使い勝手いいですか?
620NAME IS NULL
2017/08/29(火) 21:14:17.01ID:OhjuD9IQ621NAME IS NULL
2017/08/29(火) 22:18:32.51ID:??? >>620
アドオンすか・・インストール型とかイメージしてました
アドオンすか・・インストール型とかイメージしてました
622NAME IS NULL
2017/08/29(火) 22:18:48.87ID:??? >>620
アドオンすか・・インストール型とかイメージしてました
アドオンすか・・インストール型とかイメージしてました
623NAME IS NULL
2017/08/29(火) 23:12:13.61ID:??? SQLiteStudioまあまあ
SQLite以外を扱う必要がなければ十分
見た目もManagement Studioに近い
SQLite以外を扱う必要がなければ十分
見た目もManagement Studioに近い
624NAME IS NULL
2017/08/31(木) 13:06:37.85ID:FED7sUEP いるいるいるよね貝社員
625NAME IS NULL
2017/08/31(木) 15:54:23.53ID:??? 貝獣物語
626NAME IS NULL
2017/09/21(木) 14:38:04.47ID:CPk5Opit MATCHだけど
SELECT * FROM vtbl AS v WHERE v MATCH 'foo';
だとvなんてカラムねーよとエラーになる
SELECT * FROM vtbl WHERE vtbl MATCH 'foo';
ならOK
なんか納得いかない
vtblはvirtual tableです
SELECT * FROM vtbl AS v WHERE v MATCH 'foo';
だとvなんてカラムねーよとエラーになる
SELECT * FROM vtbl WHERE vtbl MATCH 'foo';
ならOK
なんか納得いかない
vtblはvirtual tableです
627NAME IS NULL
2017/10/02(月) 01:35:45.11ID:??? MATCHで指定するのはテーブルじゃなくてカラムだと思うんだが
628NAME IS NULL
2017/10/02(月) 02:46:34.33ID:??? >>627
if the identifier is the name of the FTS table itself, then the MATCH operator evaluates to true for each row of the FTS table for which any column contains the search term
https://www.sqlite.org/fts3.html#simple_fts_queries
if the identifier is the name of the FTS table itself, then the MATCH operator evaluates to true for each row of the FTS table for which any column contains the search term
https://www.sqlite.org/fts3.html#simple_fts_queries
629NAME IS NULL
2017/11/04(土) 19:10:59.78ID:???630NAME IS NULL
2017/11/08(水) 11:10:42.96ID:??? SQLite4終了?
631NAME IS NULL
2017/11/08(水) 11:43:00.04ID:??? >>630
どういうこと?
どういうこと?
632NAME IS NULL
2017/11/08(水) 12:18:11.09ID:??? >>631
開発に失敗したらしい
開発に失敗したらしい
633NAME IS NULL
2017/11/08(水) 13:25:37.98ID:??? https://sqlite.org/src4/info/c0b7f14c0976ed5e
> All development work on SQLite4 has ended. The experiment has concluded.
> All development work on SQLite4 has ended. The experiment has concluded.
634NAME IS NULL
2017/11/08(水) 15:34:14.65ID:??? >>633
肝心なところが引用できてないぞ
肝心なところが引用できてないぞ
635NAME IS NULL
2017/11/08(水) 15:47:10.99ID:??? 君が肝心と思ったところは君が引用すればいいと思うよ
636NAME IS NULL
2017/11/08(水) 15:47:57.57ID:??? SQLite4は元々リリースするつもりは無かったのか?
637NAME IS NULL
2017/11/08(水) 16:06:21.39ID:??? >>635
英語読めないのか
英語読めないのか
638NAME IS NULL
2017/11/08(水) 16:16:04.08ID:??? >>637
はい、そうです。
はい、そうです。
639NAME IS NULL
2017/11/11(土) 20:56:08.93ID:??? 初歩的な質問なのですが、
SQLiteのテーブルにboolean型のカラムを作って
C#のプログラム側から参照してbool型の変数に代入しようとすると
型が違うと怒られます
sqliteのboolean型はbool型に入れられないのでしょうか
SQLiteのテーブルにboolean型のカラムを作って
C#のプログラム側から参照してbool型の変数に代入しようとすると
型が違うと怒られます
sqliteのboolean型はbool型に入れられないのでしょうか
640NAME IS NULL
2017/11/11(土) 21:23:40.52ID:???641NAME IS NULL
2017/11/11(土) 21:46:12.74ID:???642NAME IS NULL
2017/11/11(土) 21:51:16.84ID:???643NAME IS NULL
2017/11/11(土) 22:08:14.79ID:???644NAME IS NULL
2017/11/18(土) 01:48:42.44ID:F7zPqW66 >>636
元々実験バージョンだったはず
元々実験バージョンだったはず
645NAME IS NULL
2017/11/18(土) 12:09:57.30ID:??? なんのための実験?
646NAME IS NULL
2017/11/24(金) 19:36:24.57ID:??? 質問です。
ATTACHをすると異常に遅くなるのですが、これは最新バージョンで直ってますか?
或いは何らかの対策がありますか?
[環境]
PHP7.1.8+SQLite3.15.1(今年9月時点でのxampp最新版)
SQLite3.21.0のDLLをDLして差し替えたが動作せず
[状況]
・openよりもattachの方が優先順位が低いのか、追い越されている時がある。
・基本的にシーケンシャルにリクエストをしている。
(30秒ごとにキューに溜まったリクエストを順次送信する。
前リクエストの結果を受け取ってから0.1秒待って次リクエスト発行、これでシーケンシャル。
ただし30秒でキューが掃けない場合、上に被せるので、一時的に2並列になるときがある。)
・連続した場合、2回目以降は早い(ことが多い)。1回目は6秒程度、2回目以降は0.1-0.2秒程度で終了する。
・Timeout設定は5秒だが25秒かかっても問題なく正常終了する(タイムアウトしない)
・用途は掲示板で、リクエストはスレ立て/投稿/閲覧/スレ落ちを混ぜてテスト中。
・試行錯誤した結果、ATTACHしただけで遅いようだと判明した(ATTACHしたDBを触らずとも遅い)
[推定]
連続した場合には早いので、EXCLUSIVEロック待ちだと推定している。
ただしリクエストはほぼ全部シーケンシャルなので、本来はロック待ち自体がおかしい。
なお以下仕様のため、sqlite_masterの合成に時間がかかっているのか?とも思い、
全部mainをつけてみたが変化なし。(連続した場合に早いのでこの線もおかしいが)
> If the name of the table is unique across all attached databases and the main and temp databases, then the schema-name prefix is not required.
> http://www.sqlite.org/lang_attach.html
今のところ納得できる理由(原因)が見つかっておらず、対策が出来ていません。これについて、
対策方法(最新バージョンで直っているのならそれでよし)をご存知であればご教授ください。
最新版をPHPで試す方法はPHPのスレで聞いてみます。
ATTACHをすると異常に遅くなるのですが、これは最新バージョンで直ってますか?
或いは何らかの対策がありますか?
[環境]
PHP7.1.8+SQLite3.15.1(今年9月時点でのxampp最新版)
SQLite3.21.0のDLLをDLして差し替えたが動作せず
[状況]
・openよりもattachの方が優先順位が低いのか、追い越されている時がある。
・基本的にシーケンシャルにリクエストをしている。
(30秒ごとにキューに溜まったリクエストを順次送信する。
前リクエストの結果を受け取ってから0.1秒待って次リクエスト発行、これでシーケンシャル。
ただし30秒でキューが掃けない場合、上に被せるので、一時的に2並列になるときがある。)
・連続した場合、2回目以降は早い(ことが多い)。1回目は6秒程度、2回目以降は0.1-0.2秒程度で終了する。
・Timeout設定は5秒だが25秒かかっても問題なく正常終了する(タイムアウトしない)
・用途は掲示板で、リクエストはスレ立て/投稿/閲覧/スレ落ちを混ぜてテスト中。
・試行錯誤した結果、ATTACHしただけで遅いようだと判明した(ATTACHしたDBを触らずとも遅い)
[推定]
連続した場合には早いので、EXCLUSIVEロック待ちだと推定している。
ただしリクエストはほぼ全部シーケンシャルなので、本来はロック待ち自体がおかしい。
なお以下仕様のため、sqlite_masterの合成に時間がかかっているのか?とも思い、
全部mainをつけてみたが変化なし。(連続した場合に早いのでこの線もおかしいが)
> If the name of the table is unique across all attached databases and the main and temp databases, then the schema-name prefix is not required.
> http://www.sqlite.org/lang_attach.html
今のところ納得できる理由(原因)が見つかっておらず、対策が出来ていません。これについて、
対策方法(最新バージョンで直っているのならそれでよし)をご存知であればご教授ください。
最新版をPHPで試す方法はPHPのスレで聞いてみます。
647NAME IS NULL
2017/11/25(土) 14:28:33.17ID:??? >>646
自己解決しました。
ATTACHの速度が対象DBのtable数にかなり依存するため、
ATTACHするとその場でsqlite_masterの合成をするのだと推定しました。
従って、ATTACH順を変更することにより改善できます。
今回は3つのDBを同時に扱うため、3C3の6通りでしかなく、速いのを選ぶことにしました。
なお、この実装がよいのかは若干疑問です。
通常はATTACH対象をさほどゴリゴリやらないので、
合成ではなく直列(カスケード)にして、その都度順に引いた方が速いと思われます。
或いは、合成/直列を選択するpragmaがあればよいのですが、これもないようです。
これらの問題のため、最新版等では改善している可能性もあります。(試せていません)
何か対応しようとしてくださった方が居ましたら、ありがとうございました。
自己解決しました。
ATTACHの速度が対象DBのtable数にかなり依存するため、
ATTACHするとその場でsqlite_masterの合成をするのだと推定しました。
従って、ATTACH順を変更することにより改善できます。
今回は3つのDBを同時に扱うため、3C3の6通りでしかなく、速いのを選ぶことにしました。
なお、この実装がよいのかは若干疑問です。
通常はATTACH対象をさほどゴリゴリやらないので、
合成ではなく直列(カスケード)にして、その都度順に引いた方が速いと思われます。
或いは、合成/直列を選択するpragmaがあればよいのですが、これもないようです。
これらの問題のため、最新版等では改善している可能性もあります。(試せていません)
何か対応しようとしてくださった方が居ましたら、ありがとうございました。
648NAME IS NULL
2017/11/25(土) 15:52:23.93ID:??? >>647
いやいやなになに
いやいやなになに
649NAME IS NULL
2017/11/25(土) 16:20:09.78ID:??? >>647
ついでに続報を言うと、
ATTACHが遅くなるのはシステムキャッシュが無効(容量が足りない)時だけのようです。
合成自体は十分速く、
断片化したDB内のsqlite_masterのHDDからの読み出しに時間がかかっているようです。
だからまあ、現在(SQLite 3.15.1)の実装で問題ない、ということにもなりますが、、、
私の環境では、
RAMに十分空きがある(システムキャッシュにヒットする)場合には、
ATTACHは0.04-0.06秒程度で終了します。
RAMを使い尽くしている(システムキャッシュに十分な容量がない)場合には、
ATTACHだけで2-6秒程度かかり、これはVACUUM等で改善します。
また、ATTACHの順番を変えると何となく雰囲気が変わります。
(ただしこの結果は少し矛盾してますが)
ついでに続報を言うと、
ATTACHが遅くなるのはシステムキャッシュが無効(容量が足りない)時だけのようです。
合成自体は十分速く、
断片化したDB内のsqlite_masterのHDDからの読み出しに時間がかかっているようです。
だからまあ、現在(SQLite 3.15.1)の実装で問題ない、ということにもなりますが、、、
私の環境では、
RAMに十分空きがある(システムキャッシュにヒットする)場合には、
ATTACHは0.04-0.06秒程度で終了します。
RAMを使い尽くしている(システムキャッシュに十分な容量がない)場合には、
ATTACHだけで2-6秒程度かかり、これはVACUUM等で改善します。
また、ATTACHの順番を変えると何となく雰囲気が変わります。
(ただしこの結果は少し矛盾してますが)
650NAME IS NULL
2017/11/25(土) 16:21:49.63ID:??? わざわざATTACHする理由は
651NAME IS NULL
2017/11/25(土) 17:33:35.10ID:??? >>650
DB間のデータ転送をtransactionで括るため
DB間のデータ転送をtransactionで括るため
652NAME IS NULL
2017/11/25(土) 17:54:56.49ID:???653NAME IS NULL
2017/11/25(土) 18:59:03.84ID:??? >>652
> 2相コミット
なんだこりゃ?Wiki読んだが何に使うのかよく分からん。
分散掲示板という意味なら面白いと思うし一部に待望されているが、俺が今作っているのはこれではない。
DBは同一ホストにある。
単にSQLiteの性能を出すために適宜DBを分割しているだけ。
というか、ロック単位がDBだから、平行させるためには分割するしかなく、そうしてるだけ。
(テーブル単位でロックできる他DBなら分割する意味はない)
例えばtech板なら、
「スレ本体(tech.live)」「スレヘッダのみ(全板共通)(tags.db)」「スレアーカイブ(tech.archived)」にしてあり、
スレ落ち時に
・tags.dbからヘッダを消去
・tech.live->tech.archivedにスレ内容転記
・tech.liveからスレを消去
する為にこれら3つをトランザクションで括っている。
この間に別板のスレの読み出しは、例えばprog板ならprog.liveだけで完結するのでブロックされない。
書き込みは全板共通のtags.dbによってブロックされてしまうが、これは仕様上致し方なし。
掲示板なので読み出し性能重視でこの設計にしている。
> 2相コミット
なんだこりゃ?Wiki読んだが何に使うのかよく分からん。
分散掲示板という意味なら面白いと思うし一部に待望されているが、俺が今作っているのはこれではない。
DBは同一ホストにある。
単にSQLiteの性能を出すために適宜DBを分割しているだけ。
というか、ロック単位がDBだから、平行させるためには分割するしかなく、そうしてるだけ。
(テーブル単位でロックできる他DBなら分割する意味はない)
例えばtech板なら、
「スレ本体(tech.live)」「スレヘッダのみ(全板共通)(tags.db)」「スレアーカイブ(tech.archived)」にしてあり、
スレ落ち時に
・tags.dbからヘッダを消去
・tech.live->tech.archivedにスレ内容転記
・tech.liveからスレを消去
する為にこれら3つをトランザクションで括っている。
この間に別板のスレの読み出しは、例えばprog板ならprog.liveだけで完結するのでブロックされない。
書き込みは全板共通のtags.dbによってブロックされてしまうが、これは仕様上致し方なし。
掲示板なので読み出し性能重視でこの設計にしている。
654NAME IS NULL
2017/11/25(土) 19:07:59.44ID:???655NAME IS NULL
2017/11/25(土) 19:18:27.38ID:??? >>654
複数DBのトランザクションという意味なら、それは追加されたらしい。
いつからかは知らん。
> SQLiteじゃなきゃ駄目な理由があるんでしょうな
共用鯖上で、PCの知識がほぼ無いadminでも扱える掲示板を目指している。
そのデプロイの都合上、PHP+SQLiteだ。
上位版はNodeで用意する予定だが、こちらもSQLiteになる。
それ以上の上位版は、他に既に色々あるからそっち使え、で行く。
興味あるのなら以下を読んでくれ。
https://meguca.org/g/2724701
複数DBのトランザクションという意味なら、それは追加されたらしい。
いつからかは知らん。
> SQLiteじゃなきゃ駄目な理由があるんでしょうな
共用鯖上で、PCの知識がほぼ無いadminでも扱える掲示板を目指している。
そのデプロイの都合上、PHP+SQLiteだ。
上位版はNodeで用意する予定だが、こちらもSQLiteになる。
それ以上の上位版は、他に既に色々あるからそっち使え、で行く。
興味あるのなら以下を読んでくれ。
https://meguca.org/g/2724701
656NAME IS NULL
2017/11/25(土) 19:32:02.29ID:??? そういえばSQLiteのmainデータベースの名前を変える方法知らないか?
ググったけどなさそうなんだが。
具体的には>>647を試したコードがmainが3種類必要で結果的に3つコピペしてありうざい。
(live,tags,archiveにすれば共通化できるが、どれかをmainにしないといけない縛りのため)
ググったけどなさそうなんだが。
具体的には>>647を試したコードがmainが3種類必要で結果的に3つコピペしてありうざい。
(live,tags,archiveにすれば共通化できるが、どれかをmainにしないといけない縛りのため)
657NAME IS NULL
2017/11/25(土) 19:40:25.85ID:???658NAME IS NULL
2017/11/25(土) 19:42:22.24ID:??? >>656
データベースのファイル名を変えるだけでは?
データベースのファイル名を変えるだけでは?
659NAME IS NULL
2017/11/25(土) 19:47:20.46ID:??? >>658
違う。
というか、調べた限り、ATTACH自体が新しい機能らしくて、そこまで整備されてない。
どの名前でもopenしたものはmainになるし、メモリ上のはtempになる。
それにATTACHしたものは自由に名前を付けられる、というか、つけないとsyntax上アウト。
で、mainの別名をつけられれば助かるんだが、、、
なお、tableやcolumnは別名を付けられる。
違う。
というか、調べた限り、ATTACH自体が新しい機能らしくて、そこまで整備されてない。
どの名前でもopenしたものはmainになるし、メモリ上のはtempになる。
それにATTACHしたものは自由に名前を付けられる、というか、つけないとsyntax上アウト。
で、mainの別名をつけられれば助かるんだが、、、
なお、tableやcolumnは別名を付けられる。
660NAME IS NULL
2017/11/25(土) 19:54:47.58ID:???661NAME IS NULL
2017/11/25(土) 20:03:08.43ID:???662NAME IS NULL
2017/11/25(土) 20:10:41.94ID:???663NAME IS NULL
2017/11/25(土) 20:34:48.34ID:??? >>662
いやこれはソースコード上の美学の問題だから、それを構造まで広げるのはマズい。
どうしてもというのなら関数にすればいいだけだし、その方がマシ。
どのみち最終的にはコメントアウトで捨てるコードだし、
特にいいやり方がなければコピペで放置だ。
ただしtempにいったん受けた方が速い可能性があり、結果的にそれをやるかも。
具体的に言うと、sqlite_masterのマージで
少ない方を多い方にINSERTするわけだが、(どうやらこの判定はしている)
今のところliveに150、archivedは1000-10000スレ程度で運用する予定なので、
最低150のINSERTが発生して、これが0.05sかかっている。(ように見える)
tempで空テーブルを用意してやればこれが不要になる。
落ちるスレに150レスなら転記でINSERT150回必要であり、単純には倍速になる可能性がある。
というわけだ。
いやこれはソースコード上の美学の問題だから、それを構造まで広げるのはマズい。
どうしてもというのなら関数にすればいいだけだし、その方がマシ。
どのみち最終的にはコメントアウトで捨てるコードだし、
特にいいやり方がなければコピペで放置だ。
ただしtempにいったん受けた方が速い可能性があり、結果的にそれをやるかも。
具体的に言うと、sqlite_masterのマージで
少ない方を多い方にINSERTするわけだが、(どうやらこの判定はしている)
今のところliveに150、archivedは1000-10000スレ程度で運用する予定なので、
最低150のINSERTが発生して、これが0.05sかかっている。(ように見える)
tempで空テーブルを用意してやればこれが不要になる。
落ちるスレに150レスなら転記でINSERT150回必要であり、単純には倍速になる可能性がある。
というわけだ。
664NAME IS NULL
2017/11/25(土) 21:11:41.89ID:??? >>663
旦那、ソースコードの美学なんてもんに拘ってたら、日本の薄汚いIT業界で食っていけませんぜwww
旦那、ソースコードの美学なんてもんに拘ってたら、日本の薄汚いIT業界で食っていけませんぜwww
665NAME IS NULL
2017/11/27(月) 12:31:20.51ID:??? 日本の薄汚いIT業界でSQLiteなんて使わんだろ。
だいたいは自分の自主開発用とか趣味用だろ。
SQLiteでクライアントに納品してる奴とか保守してる奴とかいるの?
いるなら俺も雇ってくれw
だいたいは自分の自主開発用とか趣味用だろ。
SQLiteでクライアントに納品してる奴とか保守してる奴とかいるの?
いるなら俺も雇ってくれw
666NAME IS NULL
2017/11/27(月) 12:38:03.57ID:dl62vFEl 自主開発てなんかイヤラシイな
667NAME IS NULL
2017/11/27(月) 12:56:06.29ID:??? イヤラシイのは自家発電
668NAME IS NULL
2017/11/27(月) 13:09:39.99ID:???669NAME IS NULL
2017/11/27(月) 14:45:54.11ID:??? SQLiteの爆速さと手軽さは中毒になるからな
670NAME IS NULL
2017/11/27(月) 21:00:36.34ID:nKW4iMOq こおゆう大げさな事をゆう奴を信用してはならん
671NAME IS NULL
2017/11/27(月) 22:08:08.61ID:??? シングルユーザーで使う分には便利だよな
トランザクションとか自分で実装したくないし、遥かに信頼できる
トランザクションとか自分で実装したくないし、遥かに信頼できる
672NAME IS NULL
2017/11/27(月) 22:10:53.86ID:??? >>669
速いかは微妙じゃないか?
俺は結局、PRAGMA SYNCHRONOUS = OFF; PRAGMA JOURNAL_MODE = MEMORY;
を常用する羽目になっているが、これってどうなのよ?と思うし。
ただし作者の「ジャーナルにはHDDの2回転が必要で、それくらいはかかる」
というのもまた正しいわけだが。
速いかは微妙じゃないか?
俺は結局、PRAGMA SYNCHRONOUS = OFF; PRAGMA JOURNAL_MODE = MEMORY;
を常用する羽目になっているが、これってどうなのよ?と思うし。
ただし作者の「ジャーナルにはHDDの2回転が必要で、それくらいはかかる」
というのもまた正しいわけだが。
673NAME IS NULL
2017/11/27(月) 22:38:09.33ID:??? 更新は遅いね
674NAME IS NULL
2017/11/28(火) 01:19:55.49ID:??? いっぱいあるだろ。
何と言ってもPublicDomainってのが使いやすい。
使ってても言わなくていいし。
何と言ってもPublicDomainってのが使いやすい。
使ってても言わなくていいし。
675NAME IS NULL
2017/11/28(火) 19:58:13.47ID:??? ちょっと複雑なSQLを書けないところがNGかな。
副問い合わせとか。
それ以外はすんごくいい。
副問い合わせとか。
それ以外はすんごくいい。
676NAME IS NULL
2017/11/28(火) 21:11:17.44ID:??? 服問い合わせ程度ならSQLite3でできるでしょ
677NAME IS NULL
2017/11/28(火) 21:37:51.97ID:??? RIGHT OUTER JOIN、FULL OUTER JOIN が出来ないくらい?
678NAME IS NULL
2017/11/29(水) 14:42:34.87ID:??? >>673
AutoCommitしてんじゃねーの?
AutoCommitしてんじゃねーの?
679675
2017/11/30(木) 05:52:18.47ID:???680NAME IS NULL
2017/11/30(木) 06:49:33.48ID:??? こういう人はなんでググったり試したりしてからレスしようとしないんだろう...
https://www.sqlite.org/lang_expr.html#subq
お前さんのおぼろげな記憶とやらに興味はないし
https://www.sqlite.org/lang_expr.html#subq
お前さんのおぼろげな記憶とやらに興味はないし
681NAME IS NULL
2017/11/30(木) 07:15:36.60ID:??? >>679
そのクエリならできる。まさに俺が現在使っているし。
そのクエリならできる。まさに俺が現在使っているし。
682NAME IS NULL
2017/11/30(木) 08:35:09.19ID:??? >>680
敵性言語で書かれている情報など読みません。
敵性言語で書かれている情報など読みません。
683NAME IS NULL
2017/11/30(木) 09:14:35.55ID:??? >>679
余裕で書けるのだが、何で出来ないと思ったのか聞いてみたい
余裕で書けるのだが、何で出来ないと思ったのか聞いてみたい
684NAME IS NULL
2017/11/30(木) 09:35:48.26ID:??? >>683
してないから
してないから
685NAME IS NULL
2017/11/30(木) 12:06:22.71ID:??? 一回試してタイプミスで文法エラーが出たのに
できないと思い込むケースはあるかもね
できないだろう、という先入観があるとどうしてもね
できないと思い込むケースはあるかもね
できないだろう、という先入観があるとどうしてもね
686NAME IS NULL
2017/11/30(木) 12:49:33.88ID:??? >>682
じゃあ敵が書いたプログラムなんか使うなよ w
じゃあ敵が書いたプログラムなんか使うなよ w
687675
2017/11/30(木) 18:22:37.58ID:??? かなり前のことなので、残念ながら具体的なクエリは忘れてしまいました。
ただ、俺のメインはPostgreSQLなので、それに比べてSQLiteはSQLを書く
自由度がかなり劣っている印象を受けたのは事実。
思い違いかもしれないので、また今度触ってみるよ。
誤った知識でSQLiteのNG情報を流布しては申し訳ないしね。
ただ、俺のメインはPostgreSQLなので、それに比べてSQLiteはSQLを書く
自由度がかなり劣っている印象を受けたのは事実。
思い違いかもしれないので、また今度触ってみるよ。
誤った知識でSQLiteのNG情報を流布しては申し訳ないしね。
688NAME IS NULL
2017/11/30(木) 19:42:18.44ID:ATTMxwZh そんなに影響力ないから気にすんなw
689NAME IS NULL
2017/12/29(金) 11:06:14.25ID:dtNZwIie 誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。
グーグル検索⇒『宮本のゴウリエセレレ』
M9UL2UMY6S
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。
グーグル検索⇒『宮本のゴウリエセレレ』
M9UL2UMY6S
690NAME IS NULL
2017/12/29(金) 17:29:28.25ID:???691NAME IS NULL
2018/01/23(火) 22:27:43.42ID:Wf3T2feU692NAME IS NULL
2018/02/14(水) 13:24:45.81ID:??? ☆ 日本の、改憲をしましょう。現在、衆議員と参議院の両院で、
改憲議員が3分の2を超えております。『憲法改正国民投票法』、
でググってみてください。国会の発議はすでに可能です。
平和は勝ち取るものです。お願い致します。☆☆
改憲議員が3分の2を超えております。『憲法改正国民投票法』、
でググってみてください。国会の発議はすでに可能です。
平和は勝ち取るものです。お願い致します。☆☆
693NAME IS NULL
2018/02/26(月) 21:26:49.95ID:??? SQLite使おうと思って初めてスレきたけど
さすがに副問い合わせできないDBとか存在価値ねーよw
さすがに副問い合わせできないDBとか存在価値ねーよw
694NAME IS NULL
2018/02/26(月) 21:35:59.73ID:??? えっ?
695NAME IS NULL
2018/02/26(月) 21:48:49.59ID:??? >>693
普通に使えるけどウェブ検索もろくに使えない人には無理だろうね
普通に使えるけどウェブ検索もろくに使えない人には無理だろうね
696NAME IS NULL
2018/02/27(火) 09:06:03.32ID:??? >>694
びっくりするなよー
びっくりするなよー
697NAME IS NULL
2018/03/04(日) 16:11:01.28ID:??? sqliteで足りないのはwindow関数くらいだと思ってる
698NAME IS NULL
2018/03/10(土) 09:59:47.54ID:rTcSh0Y2 Entity Framework Coreでマイグレーションが出来ない
これじゃ気軽にカラムの追加削除も出来やしない
Firebirdにするか
これじゃ気軽にカラムの追加削除も出来やしない
Firebirdにするか
699NAME IS NULL
2018/03/10(土) 11:00:00.86ID:fKQ0bywh 【311人工地震説】今週末、2018.3.11(日)リチャードコシミズ福島いわき講演会のお知らせです【生放送】
http://rosie.5ch.net/test/read.cgi/liveplus/1520646161/l50
http://rosie.5ch.net/test/read.cgi/liveplus/1520646161/l50
700NAME IS NULL
2018/03/10(土) 12:22:14.67ID:??? M$な人はaccessじゃねーの
701NAME IS NULL
2018/03/10(土) 12:51:13.03ID:mPREb+86 AccessってWindowsでもオワコンじゃないの?
702NAME IS NULL
2018/03/10(土) 16:14:51.18ID:??? Accessは帳票の入出力が簡単に作れるから現場ではまだよく使われてる
あとSQLiteに相当するデータベースエンジンだけならただでダウンロードできる
あとSQLiteに相当するデータベースエンジンだけならただでダウンロードできる
703NAME IS NULL
2018/03/12(月) 23:33:30.65ID:??? SQLserverとoleDBでネイティブ接続できる上に帳票やフォームが気軽に作れるのでAccessは神だったが、
OleDb廃止してadp作れなくなったaccess2013からは普通に糞。
単独で考えたときのjetSQLはさらに糞。
OleDb廃止してadp作れなくなったaccess2013からは普通に糞。
単独で考えたときのjetSQLはさらに糞。
704NAME IS NULL
2018/03/12(月) 23:41:55.61ID:bDBXx0nx SIじゃない事務系の職場で2007のUI変更は混乱起きたんじゃないかなあ
速度を気にしなければSQLの中に標準モジュールの関数を自由に使えるって結構すごい
速度を気にしなければSQLの中に標準モジュールの関数を自由に使えるって結構すごい
705NAME IS NULL
2018/03/26(月) 17:59:27.14ID:??? sqli ver3てのはsqli3てことになるのですか?
ubuntuにsqliいれたいのですが3がはいってしまいます。
ubuntuにsqliいれたいのですが3がはいってしまいます。
706NAME IS NULL
2018/03/26(月) 23:58:46.92ID:??? 3でOK。
707NAME IS NULL
2018/04/11(水) 21:37:02.56ID:kqphfPe4708NAME IS NULL
2018/04/29(日) 14:34:57.52ID:??? ubuntuにインストールしました。
コンソールからcreate ... と入力した場合、tableファイルはどこのディレクトリに作られるのでしょうか?
コンソールからcreate ... と入力した場合、tableファイルはどこのディレクトリに作られるのでしょうか?
709NAME IS NULL
2018/04/29(日) 21:48:49.51ID:??? 情報が足りなすぎるけどエスパーするとインメモリDBで実行してるからどこにも作られてない。
710NAME IS NULL
2018/04/30(月) 09:37:12.31ID:??? エスパー入門問題
711NAME IS NULL
2018/05/26(土) 13:22:27.01ID:??? 何も指定してないとメモリ上に作られる、けどその後の流れ以下でOK?
datasouce指定なしor:memory:でインメモリdbで実行されて
createでtableができる
その後いったん接続切れると(C#だとconnectionつくったusingブロックを出ると)メモリ上のdbも消える
接続が切れなければ、datasouce指定なしor:memory:で、作ったdbを操作できる
接続が確立されてる状態だと、ほかconnectionから接続はできない
ただし、最初db作るときにcache=sharedで指定してやれば、接続が続く限り
「もう一つのconnectionを作って」そこからdb操作できる
このsharedの挙動がよくわからん
datasouce指定なしor:memory:でインメモリdbで実行されて
createでtableができる
その後いったん接続切れると(C#だとconnectionつくったusingブロックを出ると)メモリ上のdbも消える
接続が切れなければ、datasouce指定なしor:memory:で、作ったdbを操作できる
接続が確立されてる状態だと、ほかconnectionから接続はできない
ただし、最初db作るときにcache=sharedで指定してやれば、接続が続く限り
「もう一つのconnectionを作って」そこからdb操作できる
このsharedの挙動がよくわからん
712NAME IS NULL
2018/05/26(土) 14:08:44.18ID:???713NAME IS NULL
2018/05/26(土) 22:44:11.55ID:???714NAME IS NULL
2018/05/28(月) 20:25:00.22ID:??? select name, (suryo * tanka) as '合計'
from hoge;
はできるんですがこの合計の総和が取れずに困ってます。
どのようにしたらいいでしょうか?
from hoge;
はできるんですがこの合計の総和が取れずに困ってます。
どのようにしたらいいでしょうか?
715NAME IS NULL
2018/05/28(月) 20:48:30.06ID:??? select name, sum(suryo * tanka) as '総和' from hoge group by name
716NAME IS NULL
2018/05/28(月) 22:41:56.84ID:??? なるほど、このようにするんですね。
ありがとうございます。
ありがとうございます。
717NAME IS NULL
2018/05/29(火) 12:29:45.70ID:??? このレベルのことを自力で解決できずに5chで聞くなんて
日本のプログラマーは素晴らしい
日本のプログラマーは素晴らしい
718NAME IS NULL
2018/05/29(火) 12:31:34.79ID:7/O8R114 >>717←このレベルのことを自力で解決できて誇らしいプログラマー
719NAME IS NULL
2018/05/29(火) 12:40:23.08ID:??? 日本のプログラマーの低レベル化はとどまる事を知らず。
720NAME IS NULL
2018/05/29(火) 14:33:26.96ID:??? 自力で解決する時間は自分持ちで
時間がかかると切られるのが日本
時間がかかると切られるのが日本
721NAME IS NULL
2018/05/29(火) 18:52:09.96ID:??? 英数字を全角で書く奴は何をやってもダメ
722NAME IS NULL
2018/05/29(火) 18:57:20.30ID:??? と、言ってるおじいちゃんが未だにいる日本
723NAME IS NULL
2018/05/29(火) 20:49:31.56ID:??? 基本的なSQLくらいは勉強してから使った方が良いけどね
724NAME IS NULL
2018/05/29(火) 23:23:10.95ID:???725NAME IS NULL
2018/05/30(水) 08:38:56.61ID:??? >>724
今のフォントだと半角カタカナは汚いがWin95の頃は普通に使われてた。今は半角カタカナを使う必要はない。
駄目なヤツは全角英数字と半角英数字の混在してるヤツ。1つの単語の中で混ぜるヤツは最悪。
今のフォントだと半角カタカナは汚いがWin95の頃は普通に使われてた。今は半角カタカナを使う必要はない。
駄目なヤツは全角英数字と半角英数字の混在してるヤツ。1つの単語の中で混ぜるヤツは最悪。
726NAME IS NULL
2018/05/30(水) 19:12:18.92ID:???727NAME IS NULL
2018/06/09(土) 10:21:54.43ID:??? PRAGMA journal_mode=OFF; PRAGMA synchronous=OFFで
VACUUMも速くなることに今更気づいた
VACUUMも速くなることに今更気づいた
728NAME IS NULL
2018/06/14(木) 14:28:34.78ID:??? create temp tableで作られたtableにデータを入れるときって
データどこに保存されてるの?
例えばconnection作るときにmemoryとかdbファイル指定したとして
そこにぶち込んでるわけじゃないっぽいんだけど
せっかくin-memory dbで作ってもよそに一時ファイル作って書き込んでるんだとしたら無駄だなとおもい
それともtempってした時点でdbファイルを指定してもメモリ上に、
in-memoryでもそのメモリ上のmemory(ややこしいなw)とは別のメモリ領域にぶっ込んでるのかな
データどこに保存されてるの?
例えばconnection作るときにmemoryとかdbファイル指定したとして
そこにぶち込んでるわけじゃないっぽいんだけど
せっかくin-memory dbで作ってもよそに一時ファイル作って書き込んでるんだとしたら無駄だなとおもい
それともtempってした時点でdbファイルを指定してもメモリ上に、
in-memoryでもそのメモリ上のmemory(ややこしいなw)とは別のメモリ領域にぶっ込んでるのかな
729NAME IS NULL
2018/06/14(木) 20:07:04.71ID:??? >>728
コネクションがmemoryならテンポラリーもmomory
コネクションがmemoryならテンポラリーもmomory
730NAME IS NULL
2018/06/14(木) 22:32:03.65ID:??? >>729
テンポラリに入れてから、そいつを加工してテンポラリじゃないデータに入れてるんだけど
テンポラリにデータぶっ込んでる時はタスクマネージャのメモリ使用量が増えないんだよね
visual studioのプロセスメモリも増えてない
テンポラリに入れてから、そいつを加工してテンポラリじゃないデータに入れてるんだけど
テンポラリにデータぶっ込んでる時はタスクマネージャのメモリ使用量が増えないんだよね
visual studioのプロセスメモリも増えてない
731NAME IS NULL
2018/06/15(金) 00:27:55.61ID:??? なんでもいいから、だれか正規表現のdll作ってくれよー
732NAME IS NULL
2018/06/15(金) 07:49:38.53ID:??? 作ったよ
733NAME IS NULL
2018/06/15(金) 08:34:36.31ID:???734NAME IS NULL
2018/06/15(金) 23:28:07.12ID:??? 最初に確保したキャパで収まってんじゃないの?
メモリがレコードに完全に比例するような、非効率的な実装なんかしないだろうし。
メモリがレコードに完全に比例するような、非効率的な実装なんかしないだろうし。
735NAME IS NULL
2018/06/15(金) 23:46:44.50ID:??? >>733
どゆことー?
一応自己解決
テンポラリのディスク領域に保存してるみたいだ
windowsの場合いわゆる仮想ディスク、だからメモリが増えてなかった
しかも仮想ディスクはm2のSSDなのでメモリ上に作ってもtempで作っても
速度あんまりかわらんかった
https://www.sqlite.org/tempfiles.html
https://www.sqlite.org/vfs.html
2,3回テストしただけだけど、500Mのテキスト軽く加工してぶっ込むのに
not tempでメモリ上につくって24秒
tempでつくって27秒
どゆことー?
一応自己解決
テンポラリのディスク領域に保存してるみたいだ
windowsの場合いわゆる仮想ディスク、だからメモリが増えてなかった
しかも仮想ディスクはm2のSSDなのでメモリ上に作ってもtempで作っても
速度あんまりかわらんかった
https://www.sqlite.org/tempfiles.html
https://www.sqlite.org/vfs.html
2,3回テストしただけだけど、500Mのテキスト軽く加工してぶっ込むのに
not tempでメモリ上につくって24秒
tempでつくって27秒
736NAME IS NULL
2018/06/16(土) 01:53:50.34ID:??? >>735
微妙に早とちりしてた
PRAGMAで設定しないなら環境変数のTEMP_Pathに"etilqs_*"ってファイルが作られる
あと仮想ディスクじゃなくて仮想ファイルシステムだ
メモリに余裕があればcreate temp tableすることないかも
微妙に早とちりしてた
PRAGMAで設定しないなら環境変数のTEMP_Pathに"etilqs_*"ってファイルが作られる
あと仮想ディスクじゃなくて仮想ファイルシステムだ
メモリに余裕があればcreate temp tableすることないかも
737NAME IS NULL
2018/06/20(水) 01:47:13.13ID:??? page sizeとcache sizeいくつにしてますか?
page sizeのdefaultが1024から4096に変わったりしてるし
処理するデータによっても変わるし、PC環境でも最適が変わるんだろうけど
なんか基準みたいなのあれば教えてください
fieldが10位なら***みたいな
https://blog.devart.com/increasing-sqlite-performance.html
2016年記事でこんな感じだけど
増やせば増やすほどいいってものでもないんですね
page sizeのdefaultが1024から4096に変わったりしてるし
処理するデータによっても変わるし、PC環境でも最適が変わるんだろうけど
なんか基準みたいなのあれば教えてください
fieldが10位なら***みたいな
https://blog.devart.com/increasing-sqlite-performance.html
2016年記事でこんな感じだけど
増やせば増やすほどいいってものでもないんですね
738NAME IS NULL
2018/06/25(月) 21:04:53.90ID:???739NAME IS NULL
2018/07/07(土) 15:51:37.40ID:r3W4+i36 この手のdb組み合わせて作るシステムってクエリ文コード中に書くの?
それとも外部テキストとか読み込むの?
それとも外部テキストとか読み込むの?
740NAME IS NULL
2018/07/08(日) 18:59:47.36ID:??? 好き好きやろ。
よっぽどでなければ、わざわざ外部テキストにはしないんじゃないのとは思うが。
よっぽどでなければ、わざわざ外部テキストにはしないんじゃないのとは思うが。
741NAME IS NULL
2018/07/08(日) 19:47:07.48ID:???742NAME IS NULL
2018/07/09(月) 21:11:23.36ID:+WAobpIw なるへそ
コードに直書きしてるサンプルみてて、改行時のスペース一つみすったらこけるなっておもったが
当然というか、いろいろ方法はあるんやね
コードに直書きしてるサンプルみてて、改行時のスペース一つみすったらこけるなっておもったが
当然というか、いろいろ方法はあるんやね
743NAME IS NULL
2018/07/10(火) 05:08:16.71ID:??? 次のバージョンでついにwindow関数入るのか
もう望むもの無いな
もう望むもの無いな
744NAME IS NULL
2018/07/25(水) 14:40:00.43ID:??? >>743
regexpの実装
regexpの実装
745NAME IS NULL
2018/07/25(水) 23:00:33.50ID:??? regexpは初めから組み込み側言語の関数を組みこんで使ってくれってスタンスだからな、その方が親和性が取れるから本当はいいんだろう。
たから今更無いだろうよ。
別にそれで不便してないし。
たから今更無いだろうよ。
別にそれで不便してないし。
746NAME IS NULL
2018/08/22(水) 15:09:41.10ID:??? 出力モードをcolumnにしてselectで出力したのに1行目にカラムが表示されないのは何が原因でしょうか?
747NAME IS NULL
2018/08/22(水) 15:12:17.74ID:??? 自己レス
.header onが必要でした
.header onが必要でした
748NAME IS NULL
2018/09/12(水) 06:32:04.96ID:??? window関数って何に使えるのでつか?
749NAME IS NULL
2018/09/12(水) 15:26:15.14ID:??? 区間集計
750NAME IS NULL
2018/09/12(水) 20:06:53.29ID:??? 区間集計?
751NAME IS NULL
2018/09/13(木) 00:02:16.91ID:??? 一般のプログラミング言語みたいに
ループを回してデータを順番に見ながら計算を進めていければいいのに……
と思ったときに使えます。
ループを回してデータを順番に見ながら計算を進めていければいいのに……
と思ったときに使えます。
752NAME IS NULL
2018/09/13(木) 19:41:18.77ID:??? 解説ありがとうございます。
GROUP BY でまとめて集計関数使うのではだめなのかなぁとか思ったんですが・・・
まずは調べて勉強します。
有難うございました。
GROUP BY でまとめて集計関数使うのではだめなのかなぁとか思ったんですが・・・
まずは調べて勉強します。
有難うございました。
753NAME IS NULL
2018/09/13(木) 21:44:39.64ID:??? GROUP BYと通常の集計でも大抵のことはできますが
自己結合やサブクエリの嵐になってその遅さに悩んだら
ウィンドウ関数を思い出してあげてください
自己結合やサブクエリの嵐になってその遅さに悩んだら
ウィンドウ関数を思い出してあげてください
754NAME IS NULL
2018/09/13(木) 21:50:01.28ID:wh5zrV2Z755NAME IS NULL
2018/09/13(木) 22:54:43.13ID:??? 不可能を可能にする男登場
756NAME IS NULL
2018/09/13(木) 23:30:34.62ID:???757NAME IS NULL
2018/09/16(日) 16:55:23.52ID:JQCEyK6s758NAME IS NULL
2018/09/16(日) 17:45:15.65ID:Mx+Utd0W おお!!!
759NAME IS NULL
2018/09/23(日) 11:47:09.80ID:5ZnCIZoY760NAME IS NULL
2018/09/27(木) 22:18:28.86ID:???761NAME IS NULL
2018/10/13(土) 19:47:47.16ID:???762NAME IS NULL
2018/11/02(金) 07:21:05.42ID:??? SQL文の最後はセミコロンが必要らしいんだけど
pythonから使う分には不要であってますか?
sql="select * from hoge" ←セミコロンなし
pythonから使う分には不要であってますか?
sql="select * from hoge" ←セミコロンなし
763NAME IS NULL
2018/11/02(金) 08:41:03.68ID:??? >>762
1文だけだと不要だよ
1文だけだと不要だよ
764NAME IS NULL
2018/11/02(金) 10:21:47.91ID:??? 最後に必要なんじゃなくて、文の区切り。
その話はきっとC言語の文とかと混乱してる。
その話はきっとC言語の文とかと混乱してる。
765NAME IS NULL
2018/11/02(金) 18:30:48.05ID:??? ありがとう
不要ということで。
sqlite セミコロンでぐぐると忘れないようにしまようってのが目についたので聞いてみましたw
不要ということで。
sqlite セミコロンでぐぐると忘れないようにしまようってのが目についたので聞いてみましたw
766NAME IS NULL
2018/11/02(金) 20:44:28.50ID:???767NAME IS NULL
2018/11/02(金) 22:53:35.88ID:???768NAME IS NULL
2018/11/03(土) 08:13:47.38ID:??? >>766
SQLiteや英語よりも、まず先に社会性を学べ
SQLiteや英語よりも、まず先に社会性を学べ
769NAME IS NULL
2018/11/03(土) 08:16:28.22ID:??? 出る杭を打ち込む悪しき文化だねえ
770NAME IS NULL
2018/11/03(土) 08:17:37.50ID:??? または、議論の本題より揚げ足取りになる文化
771NAME IS NULL
2018/11/05(月) 14:27:21.80ID:??? >>767
sqliteの公式ドキュメントで使ってる英文法は難しく無いだろう?
sqliteの公式ドキュメントで使ってる英文法は難しく無いだろう?
772NAME IS NULL
2018/11/05(月) 17:48:29.01ID:???773NAME IS NULL
2018/11/05(月) 19:34:14.05ID:??? SQLの文法って略さずに書かないと今回の例は分かりにくいよ
どっちとも取れる文章で文句言ったってしゃあないっしょ
どっちとも取れる文章で文句言ったってしゃあないっしょ
774NAME IS NULL
2018/11/05(月) 19:51:48.49ID:???775NAME IS NULL
2018/11/05(月) 23:05:08.34ID:??? >>772
そっちの文法かいなw
それは、構文図と言う書き方なんで、構文図の読み方が分からないと分からんわなあ。
https://en.wikipedia.org/wiki/Syntax_diagram
SQL構文図でぐぐれば出てくるよ。
そっちの文法かいなw
それは、構文図と言う書き方なんで、構文図の読み方が分からないと分からんわなあ。
https://en.wikipedia.org/wiki/Syntax_diagram
SQL構文図でぐぐれば出てくるよ。
776NAME IS NULL
2018/11/05(月) 23:21:54.05ID:??? >>774
英語なんて見るのも嫌ってヤツが少なからず居るからそこまでたどり着けない。
英語なんて見るのも嫌ってヤツが少なからず居るからそこまでたどり着けない。
777NAME IS NULL
2018/11/06(火) 03:20:55.95ID:???778NAME IS NULL
2018/11/06(火) 04:59:35.05ID:???779NAME IS NULL
2018/11/06(火) 06:12:45.76ID:??? >>777
オラクルでも使ってるし、SQLプログラマーとして読めないのはいかんだろ。
オラクルでも使ってるし、SQLプログラマーとして読めないのはいかんだろ。
780NAME IS NULL
2018/11/06(火) 06:15:47.52ID:??? >>778
日本語の文法ではあるが意味不明だ。
日本語の文法ではあるが意味不明だ。
781NAME IS NULL
2018/11/06(火) 06:32:29.17ID:??? バカには意味不明かもなww
782NAME IS NULL
2018/11/06(火) 08:40:09.98ID:???783NAME IS NULL
2018/11/06(火) 08:53:01.39ID:???784NAME IS NULL
2018/11/06(火) 08:57:46.02ID:???785NAME IS NULL
2018/11/06(火) 09:50:25.94ID:???786NAME IS NULL
2018/11/06(火) 12:27:40.80ID:???787NAME IS NULL
2018/11/08(木) 00:55:32.60ID:??? バカは他人をバカ呼ばわりする
788NAME IS NULL
2018/11/08(木) 07:17:44.92ID:??? > バカは他人をバカ呼ばわりする
上から目線の>>787が言うなよww
上から目線の>>787が言うなよww
789NAME IS NULL
2018/11/08(木) 08:19:49.30ID:??? >>788
上から目線?どこが
上から目線?どこが
790NAME IS NULL
2018/11/08(木) 08:39:31.22ID:??? 自分の無知がわかれば哲学者になれる
791NAME IS NULL
2018/11/08(木) 12:22:12.76ID:??? 自覚がないとか最悪
792NAME IS NULL
2018/12/02(日) 15:16:58.22ID:???793NAME IS NULL
2018/12/02(日) 16:12:37.68ID:??? sqliteもいつの間にかJSON型使えるようになってたんだな。
知らんかったよ・・。
知らんかったよ・・。
794NAME IS NULL
2019/02/16(土) 16:08:19.92ID:??? 皆さん冬眠中のとこわるいんだけど1点教えて
Pythonで
sql = 'select * from hoge'
cur.execute(sql)
for i in cur:
print(i)
と
sql = 'select * from hoge'
cur.execute(sql)
l = cur.fetchall()
for i in i:
print(i)
同じ結果になる。fetchall()て使わないとダメなの?
Pythonで
sql = 'select * from hoge'
cur.execute(sql)
for i in cur:
print(i)
と
sql = 'select * from hoge'
cur.execute(sql)
l = cur.fetchall()
for i in i:
print(i)
同じ結果になる。fetchall()て使わないとダメなの?
795NAME IS NULL
2019/02/16(土) 18:26:06.25ID:??? pythonスレで聞いたら?
796NAME IS NULL
2019/02/16(土) 20:55:52.69ID:???797NAME IS NULL
2019/02/16(土) 21:35:53.80ID:??? >>794
> for i in i:
は
for i in l:
だとして
> 同じ結果になる。fetchall()て使わないとダメなの?
別に使わなくていい、と言うかでかいデータをfetchall()するとメモリー上に展開するからやっちゃダメ
ただforとかfetchone()で回すとシリアルにしか処理できないから読み込んでpythonでランダムに処理したい時とかはfetchall()で一気に読み込んで処理するとかはあり得る
> for i in i:
は
for i in l:
だとして
> 同じ結果になる。fetchall()て使わないとダメなの?
別に使わなくていい、と言うかでかいデータをfetchall()するとメモリー上に展開するからやっちゃダメ
ただforとかfetchone()で回すとシリアルにしか処理できないから読み込んでpythonでランダムに処理したい時とかはfetchall()で一気に読み込んで処理するとかはあり得る
798794
2019/02/17(日) 13:19:11.23ID:??? ありがとう
fetchallがPythonライブラリなのは知らなんだわ
fetchallがPythonライブラリなのは知らなんだわ
799NAME IS NULL
2019/02/17(日) 20:29:48.70ID:??? >>798
をゐ!
をゐ!
800NAME IS NULL
2019/03/16(土) 23:09:31.62ID:??? すいません。パナのVIERAの録画用外付けHDDがTVで読めなくなったので救出中です。
ddからごにょごにょしてファイルを拾ってみると、txt、dbx、spliteとかのファイルがあって、どうやらデータ保存にこのSQLiteってのを使ってるみたいなんです。誰か同じようにデータ救出したことある人いませんか?
現状、拾ったファイルからプリセットと思われるDBが見えてるだけの状態です。
https://imgur.com/pg50Nq7
ddからごにょごにょしてファイルを拾ってみると、txt、dbx、spliteとかのファイルがあって、どうやらデータ保存にこのSQLiteってのを使ってるみたいなんです。誰か同じようにデータ救出したことある人いませんか?
現状、拾ったファイルからプリセットと思われるDBが見えてるだけの状態です。
https://imgur.com/pg50Nq7
801NAME IS NULL
2019/03/17(日) 07:15:15.64ID:???802NAME IS NULL
2019/03/18(月) 03:25:00.48ID:??? アクセスの特性を考えても動画そのものはSQLiteには入れないだろうね。
datnameという列が動画ファイルの名前なのかな。
datnameという列が動画ファイルの名前なのかな。
803NAME IS NULL
2019/04/17(水) 22:31:13.12ID:1RkN/oKB804NAME IS NULL
2019/07/12(金) 20:06:09.18ID:gIxje4Vh805NAME IS NULL
2019/07/28(日) 18:04:58.43ID:???806NAME IS NULL
2019/07/30(火) 09:23:06.50ID:??? マルチマスタ,標準機能で入れて欲しい。
807NAME IS NULL
2019/07/30(火) 13:58:57.32ID:??? マネージドサービスも欲しいよね
808NAME IS NULL
2019/08/12(月) 19:16:00.45ID:ZgSTLcpR アクセスみたいなフォーム・レポート機能も欲しいよね
809NAME IS NULL
2019/09/15(日) 18:36:11.82ID:??? なんかワンセットで使えるものないのかね
アメリカだとジャスパーレポートがあるのか
アメリカだとジャスパーレポートがあるのか
810NAME IS NULL
2019/10/04(金) 00:21:06.27ID:??? db browser for sqliteの問題なのかも知れないけど
maindb.tbl1とattachしたsubdb.tbl2をjoinした結果でcreate viewして、
それをselectしたら、no such db:"maindb.tbl2"ってエラーになったんだけど、他の人も再現しますか?
joinした結果だけなら普通にselectできて、中身も正しいんだけど
エラーメッセージからも、どうもattachしたsubdbがviewにすると上手く参照出来てないっぽい
maindb.tbl1とattachしたsubdb.tbl2をjoinした結果でcreate viewして、
それをselectしたら、no such db:"maindb.tbl2"ってエラーになったんだけど、他の人も再現しますか?
joinした結果だけなら普通にselectできて、中身も正しいんだけど
エラーメッセージからも、どうもattachしたsubdbがviewにすると上手く参照出来てないっぽい
811NAME IS NULL
2019/10/05(土) 09:46:44.63ID:aM6ozOX5812NAME IS NULL
2019/10/11(金) 23:52:38.14ID:sULVZecV813NAME IS NULL
2019/11/30(土) 12:46:47.63ID:??? sqliteって正規表現使えないんだな。
814NAME IS NULL
2020/02/29(土) 17:34:06.34ID:??? 日付型がネックだなこれ
excelからVBAで書き込もうとしたけど上手くいかない
excelからVBAで書き込もうとしたけど上手くいかない
815NAME IS NULL
2020/02/29(土) 19:26:41.37ID:???816NAME IS NULL
2020/02/29(土) 19:46:45.57ID:??? あったらあったでややこしいのが日付型。
タイムゾーンとか範囲とか精度とか表現とか。。。
タイムゾーンとか範囲とか精度とか表現とか。。。
817NAME IS NULL
2020/02/29(土) 21:10:39.44ID:??? 日付を数字八桁に変えてやるのがやっぱベターかね?
818NAME IS NULL
2020/02/29(土) 22:04:36.50ID:??? >>817
文字型にするかepochからの経過日数にするとか
文字型にするかepochからの経過日数にするとか
819NAME IS NULL
2020/02/29(土) 23:07:17.82ID:???820NAME IS NULL
2020/03/01(日) 07:23:04.95ID:???821NAME IS NULL
2020/03/01(日) 08:39:59.21ID:??? 8文字の文字列にするのはよくあるが8桁の数値にするのは見たことないわ
822NAME IS NULL
2020/03/01(日) 09:09:44.07ID:??? BCDの変形だけど、何ていうんだろう
Decimal Coded Clock notationで、DCC?
というか、time()とかdate()とかって関数なかったっけ?
Decimal Coded Clock notationで、DCC?
というか、time()とかdate()とかって関数なかったっけ?
823NAME IS NULL
2020/03/01(日) 09:22:40.88ID:???824NAME IS NULL
2020/03/01(日) 09:26:11.62ID:??? オマエらSQLiteのマニュアルをちゃんと見ろよ。
日付について詳しく書いてある。
オープンソースであんだけしっかりとマニュアルが有るのは無いぞ。
日付について詳しく書いてある。
オープンソースであんだけしっかりとマニュアルが有るのは無いぞ。
825NAME IS NULL
2020/03/01(日) 09:44:55.05ID:??? ドキュメントはPostgreSQLもしっかりしてるぞ
826NAME IS NULL
2020/03/01(日) 15:20:41.92ID:??? >>821
文字型だとexcelにインポートしたときソート出来ないので
文字型だとexcelにインポートしたときソート出来ないので
827NAME IS NULL
2020/03/01(日) 17:14:22.26ID:??? 普通にソートできるけど?
828NAME IS NULL
2020/03/01(日) 18:03:05.26ID:??? 別に>>826に文字列型にしろと言ってるわけじゃないから好きな方法でいいと思うよ
829NAME IS NULL
2020/04/04(土) 10:46:28.73ID:VEbZoUCg830NAME IS NULL
2020/04/04(土) 17:51:01.08ID:??? 何このSQL!?
これ標準SQLなの?
これ標準SQLなの?
831NAME IS NULL
2020/04/22(水) 07:31:11.44ID:??? 出来るようになったんだ。
postgresqlでは昔からあったこの書き方。
postgresqlでは昔からあったこの書き方。
832NAME IS NULL
2020/04/23(木) 22:18:26.65ID:??? Create temporary view で接続時限定のマスタを仕立てたりするのに使えるかな
833NAME IS NULL
2020/04/27(月) 15:10:44.26ID:??? 設定少な目でお手軽使用
便利だなあ
便利だなあ
834NAME IS NULL
2020/06/07(日) 22:36:38.26ID:???835NAME IS NULL
2020/06/14(日) 20:03:56.58ID:??? このDB使っててDBが壊れた経験ある人いる?
836NAME IS NULL
2020/06/14(日) 23:26:55.98ID:??? 自分はないです。
837NAME IS NULL
2020/06/21(日) 17:57:03.78ID:??? コマンドライン(sqlite3)でパスワード付きのファイルを使うときはどうやってパスワード指定するの?
838NAME IS NULL
2020/07/24(金) 19:27:11.79ID:??? 符号なし64bit整数はないのか…
839NAME IS NULL
2020/07/30(木) 12:15:20.47ID:??? C#版のsystem.data.sqlite.dllの暗号化機能は無くなったのでしょうか?
840NAME IS NULL
2020/09/24(木) 14:30:05.42ID:PKn4SiJe SQLiteのWALファイルが80GBを超えている(DBファイルは8GBほど)なのですが、
これってふつうなのでしょうか。
ググると、WALファイルの内容はコミットされたときに、DBファイルとマージされるという趣旨の記事を見かけたのですが、
WALファイルの内容をDBファイルに加えて、安全に削除できるようにするにはどうしたらいいのでしょうか。
よろしくお願いいたします
これってふつうなのでしょうか。
ググると、WALファイルの内容はコミットされたときに、DBファイルとマージされるという趣旨の記事を見かけたのですが、
WALファイルの内容をDBファイルに加えて、安全に削除できるようにするにはどうしたらいいのでしょうか。
よろしくお願いいたします
841NAME IS NULL
2020/09/24(木) 14:44:55.45ID:???842NAME IS NULL
2020/10/22(木) 02:03:20.97ID:??? sqliteのソースコードからビルドってどうやるのでしょうか?
dllファイルを作ろうと公式からamalgamationをダウンロードして、visual studioのc++のプロジェクトに中身全部追加してビルドしようとしても「プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "pch.h"' をソースに追加しましたか?」など色々エラーや警告が出ます
dllファイルを作ろうと公式からamalgamationをダウンロードして、visual studioのc++のプロジェクトに中身全部追加してビルドしようとしても「プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "pch.h"' をソースに追加しましたか?」など色々エラーや警告が出ます
843NAME IS NULL
2020/10/22(木) 02:11:58.91ID:???844NAME IS NULL
2020/10/22(木) 03:51:57.88ID:??? >>843
ようやく出来ましたわ
どこ見ても同じような指南していて、その通りにしているのに同じエラーが出続けて参ってました
構成とプラットフォームのコンボボックスにも適切な設定をしないと駄目なんですね
ありがとう
ようやく出来ましたわ
どこ見ても同じような指南していて、その通りにしているのに同じエラーが出続けて参ってました
構成とプラットフォームのコンボボックスにも適切な設定をしないと駄目なんですね
ありがとう
845NAME IS NULL
2021/08/16(月) 19:24:19.07ID:??? SQLiteって、プリペアドステートメントでマルチステートメントって使えないものなの?
凄く初歩的な質問で申し訳ないが、当方Web系ではないので全く相場が分かってない。
PHPからSQLiteを操作している。
元々既に動いているプロトタイプではリテラルで与えていたSQLを、
本格運用前にその他機能も付けてプリペアドに書き換えているのだが、
そうすると何故か動かないケースに何度も遭遇し、色々試ししたところ、
どうやら頭の一つしか動いていないっぽいことに気づいた。
それでググッたのだが、そのものは出てこない。
ただしプリペアドの使用例ではどこもシングルステートメントで書かれているし、
MySQL8.0の仕様書には「プリペアドはマルチステートメントには対応していません」と明示されており、
MySQLで対応出来てない機能がSQLiteにあるはずも無しか?とも思っている。
(というよりそもそもプリペアドがマルチステートメントに対応しているDBが無いのか?)
そこで上記の質問になる。
もう諦めてシングルステートメントに書き直しているが、一応確認したい。
凄く初歩的な質問で申し訳ないが、当方Web系ではないので全く相場が分かってない。
PHPからSQLiteを操作している。
元々既に動いているプロトタイプではリテラルで与えていたSQLを、
本格運用前にその他機能も付けてプリペアドに書き換えているのだが、
そうすると何故か動かないケースに何度も遭遇し、色々試ししたところ、
どうやら頭の一つしか動いていないっぽいことに気づいた。
それでググッたのだが、そのものは出てこない。
ただしプリペアドの使用例ではどこもシングルステートメントで書かれているし、
MySQL8.0の仕様書には「プリペアドはマルチステートメントには対応していません」と明示されており、
MySQLで対応出来てない機能がSQLiteにあるはずも無しか?とも思っている。
(というよりそもそもプリペアドがマルチステートメントに対応しているDBが無いのか?)
そこで上記の質問になる。
もう諦めてシングルステートメントに書き直しているが、一応確認したい。
846NAME IS NULL
2021/08/16(月) 21:43:30.84ID:??? もし「使える」とここで言われたところで、実際におまえのところで使えないのであれば、意味はまったくないで?
847NAME IS NULL
2021/08/16(月) 22:31:00.95ID:??? 別の人DBMS使ってるけどそれはマルチステートメントでパラメータ使えないな
使えるのってあるのかね
使えるのってあるのかね
848NAME IS NULL
2021/08/16(月) 23:01:47.24ID:??? >>847
やはりそうか。ありがとう。
>>846
今作っているのは他環境用(公開用)だから。
バージョン上げて済むならそうするし、動作条件にそう書くだけ。
プリペアドがシングルステートメント専用だと絶望的にコードが汚くなる。
これだと上位階層でラップしたくなるのも分かる。
そしてLaravel見たが、完全にORMに近い。まあそりゃそうだ。
(プリペアドが必要な場合は、)SQLなんてベタで書くものではないと痛感している。
ただなあ、ポインタを渡しているだけっぽいので、実装は難しくなさそうだし、やる気がないだけか?
確かにフレームワークで隠蔽するべきだし、その場合には最早どうでもいいのも確かだけど。
やはりそうか。ありがとう。
>>846
今作っているのは他環境用(公開用)だから。
バージョン上げて済むならそうするし、動作条件にそう書くだけ。
プリペアドがシングルステートメント専用だと絶望的にコードが汚くなる。
これだと上位階層でラップしたくなるのも分かる。
そしてLaravel見たが、完全にORMに近い。まあそりゃそうだ。
(プリペアドが必要な場合は、)SQLなんてベタで書くものではないと痛感している。
ただなあ、ポインタを渡しているだけっぽいので、実装は難しくなさそうだし、やる気がないだけか?
確かにフレームワークで隠蔽するべきだし、その場合には最早どうでもいいのも確かだけど。
849NAME IS NULL
2021/08/16(月) 23:21:52.23ID:??? 他のDBならストアド
SQLiteならユーザー定義関数
SQLiteならユーザー定義関数
850NAME IS NULL
2021/08/22(日) 11:38:56.96ID:+WxTgcLC https://kurashigoto.hokkaido.jp/flexibleSearch/search.php?offset=0&limit=20&search=%E3%83%98%E3%83%AB%E3%82%B9%E5%AC%A2%E3%83%BB%E5%A3%B2%E6%98%A5%E5%A9%A6%E3%81%AE%E9%87%91%E5%9F%8E%E8%8B%B1%E9%87%8C%E3%81%95%E3%82%93%EF%BC%881984%EF%BC%8F3%EF%BC%8F21%E7%94%9F%EF%BC%89%E3%81%AE%E8%87%AA%E6%92%AE%E3%82%8A%E3%83%8C%E3%83%BC%E3%83%89%E5%85%AC%E9%96%8B%E4%B8%ADavgle
https://magazine.jp.square-enix.com/top/comics/?search=q&x=0&y=0&sword=%E3%83%98%E3%83%AB%E3%82%B9%E5%AC%A2%E3%83%BB%E5%A3%B2%E6%98%A5%E5%A9%A6%E3%81%AE%E9%87%91%E5%9F%8E%E8%8B%B1%E9%87%8C%E3%81%95%E3%82%93%EF%BC%881984%EF%BC%8F3%EF%BC%8F21%E7%94%9F%EF%BC%89%E3%81%AE%E8%87%AA%E6%92%AE%E3%82%8A%E3%83%8C%E3%83%BC%E3%83%89%E5%85%AC%E9%96%8B%E4%B8%ADavgle
https://miyagi.doctor-search.tv/search/hospital?dis=3000&Keyword=%E3%83%98%E3%83%AB%E3%82%B9%E5%AC%A2%E3%83%BB%E5%A3%B2%E6%98%A5%E5%A9%A6%E3%81%AE%E9%87%91%E5%9F%8E%E8%8B%B1%E9%87%8C%E3%81%95%E3%82%93%EF%BC%881984%EF%BC%8F3%EF%BC%8F21%E7%94%9F%EF%BC%89%E3%81%AE%E8%87%AA%E6%92%AE%E3%82%8A%E3%83%8C%E3%83%BC%E3%83%89%E5%85%AC%E9%96%8B%E4%B8%ADavgle
https://mtke-job.jp/list/keyword=%E3%83%98%E3%83%AB%E3%82%B9%E5%AC%A2%E3%83%BB%E5%A3%B2%E6%98%A5%E5%A9%A6%E3%81%AE%E9%87%91%E5%9F%8E%E8%8B%B1%E9%87%8C%E3%81%95%E3%82%93%EF%BC%881984%EF%BC%8F3%EF%BC%8F21%E7%94%9F%EF%BC%89%E3%81%AE%E8%87%AA%E6%92%AE%E3%82%8A%E3%83%8C%E3%83%BC%E3%83%89%E5%85%AC%E9%96%8B%E4%B8%ADavgle
https://news.dwango.jp/search/?s=%E3%83%98%E3%83%AB%E3%82%B9%E5%AC%A2%E3%83%BB%E5%A3%B2%E6%98%A5%E5%A9%A6%E3%81%AE%E9%87%91%E5%9F%8E%E8%8B%B1%E9%87%8C%E3%81%95%E3%82%93%EF%BC%881984%EF%BC%8F3%EF%BC%8F21%E7%94%9F%EF%BC%89%E3%81%AE%E8%87%AA%E6%92%AE%E3%82%8A%E3%83%8C%E3%83%BC%E3%83%89%E5%85%AC%E9%96%8B%E4%B8%ADavgle
https://magazine.jp.square-enix.com/top/comics/?search=q&x=0&y=0&sword=%E3%83%98%E3%83%AB%E3%82%B9%E5%AC%A2%E3%83%BB%E5%A3%B2%E6%98%A5%E5%A9%A6%E3%81%AE%E9%87%91%E5%9F%8E%E8%8B%B1%E9%87%8C%E3%81%95%E3%82%93%EF%BC%881984%EF%BC%8F3%EF%BC%8F21%E7%94%9F%EF%BC%89%E3%81%AE%E8%87%AA%E6%92%AE%E3%82%8A%E3%83%8C%E3%83%BC%E3%83%89%E5%85%AC%E9%96%8B%E4%B8%ADavgle
https://miyagi.doctor-search.tv/search/hospital?dis=3000&Keyword=%E3%83%98%E3%83%AB%E3%82%B9%E5%AC%A2%E3%83%BB%E5%A3%B2%E6%98%A5%E5%A9%A6%E3%81%AE%E9%87%91%E5%9F%8E%E8%8B%B1%E9%87%8C%E3%81%95%E3%82%93%EF%BC%881984%EF%BC%8F3%EF%BC%8F21%E7%94%9F%EF%BC%89%E3%81%AE%E8%87%AA%E6%92%AE%E3%82%8A%E3%83%8C%E3%83%BC%E3%83%89%E5%85%AC%E9%96%8B%E4%B8%ADavgle
https://mtke-job.jp/list/keyword=%E3%83%98%E3%83%AB%E3%82%B9%E5%AC%A2%E3%83%BB%E5%A3%B2%E6%98%A5%E5%A9%A6%E3%81%AE%E9%87%91%E5%9F%8E%E8%8B%B1%E9%87%8C%E3%81%95%E3%82%93%EF%BC%881984%EF%BC%8F3%EF%BC%8F21%E7%94%9F%EF%BC%89%E3%81%AE%E8%87%AA%E6%92%AE%E3%82%8A%E3%83%8C%E3%83%BC%E3%83%89%E5%85%AC%E9%96%8B%E4%B8%ADavgle
https://news.dwango.jp/search/?s=%E3%83%98%E3%83%AB%E3%82%B9%E5%AC%A2%E3%83%BB%E5%A3%B2%E6%98%A5%E5%A9%A6%E3%81%AE%E9%87%91%E5%9F%8E%E8%8B%B1%E9%87%8C%E3%81%95%E3%82%93%EF%BC%881984%EF%BC%8F3%EF%BC%8F21%E7%94%9F%EF%BC%89%E3%81%AE%E8%87%AA%E6%92%AE%E3%82%8A%E3%83%8C%E3%83%BC%E3%83%89%E5%85%AC%E9%96%8B%E4%B8%ADavgle
851NAME IS NULL
2021/10/24(日) 14:06:43.68ID:O6kw9T0t windows版のSQLite3でFTS5を、トークナイザにtrigramを指定して使ってみたのですが
検索文字を2文字以下にするとヒット数が0件になります
スキーマは
CREATE VIRTUAL TABLE novel USING fts5(text, tokenize= 'trigram')
で、
SELECT * from novel WHERE text MATCH 'ジョー';
→結果391件
SELECT * from novel WHERE text MATCH 'ジョ';
→結果0件
という感じです
SQLite3のtrigramは3文字以上の語句しか検索できないのでしょうか?
検索文字を2文字以下にするとヒット数が0件になります
スキーマは
CREATE VIRTUAL TABLE novel USING fts5(text, tokenize= 'trigram')
で、
SELECT * from novel WHERE text MATCH 'ジョー';
→結果391件
SELECT * from novel WHERE text MATCH 'ジョ';
→結果0件
という感じです
SQLite3のtrigramは3文字以上の語句しか検索できないのでしょうか?
852NAME IS NULL
2021/10/24(日) 14:46:14.93ID:??? trigramってなんのことやと思ったん?
853NAME IS NULL
2021/10/24(日) 16:14:36.29ID:??? >>851
> Notes:
> Substrings consisting of fewer than 3 unicode characters do not match any rows when used with a full-text query.
> If a LIKE or GLOB pattern does not contain at least one sequence of non-wildcard unicode characters,
> FTS5 falls back to a linear scan of the entire table.
> https://www.sqlite.org/fts5.html#trigramidx
> Notes:
> Substrings consisting of fewer than 3 unicode characters do not match any rows when used with a full-text query.
> If a LIKE or GLOB pattern does not contain at least one sequence of non-wildcard unicode characters,
> FTS5 falls back to a linear scan of the entire table.
> https://www.sqlite.org/fts5.html#trigramidx
854NAME IS NULL
2021/10/24(日) 16:16:07.13ID:??? >>851
tri- …
tri- …
855NAME IS NULL
2021/10/24(日) 17:45:21.29ID:??? そらそうやろw
856NAME IS NULL
2021/10/24(日) 17:48:12.98ID:??? 不親切だとは思うけどね。
それ含めてテスト中なのだとも思うけど。
それ含めてテスト中なのだとも思うけど。
857NAME IS NULL
2021/10/24(日) 18:32:03.63ID:???858NAME IS NULL
2021/10/24(日) 19:28:58.24ID:??? >>857
Experimentalなんだから、仕様のテスト中だよ。
MATCH対象は文字列なのだから、プリペアドで与えられる事も普通にある。つまり、変数扱いだ。
なら、今の仕様だとプログラム側(上位)で「3文字以上かどうか」を判定してSQLを切り替えてやらないといけなくなる。
これだと使いにくいでしょ。
普通なら、
・2文字以下の場合は内部的にLIKEに切り替えてヒットするようにするか、
・2文字以下もヒットして欲しい場合はMATCHではなく別の予約語(NEARMATCH)とかを用意するか
だと思うけど。
Experimentalが何か知らないお前が一番頭悪いよ。なお853=856=俺な。
>>851に対して言える事は、
SQLiteは公式ドキュメントが素晴らしくよく出来てるので、引っかかったらまずは公式を読めって事だね。
はっきり言って大体公式だけで解決する。
Experimentalなんだから、仕様のテスト中だよ。
MATCH対象は文字列なのだから、プリペアドで与えられる事も普通にある。つまり、変数扱いだ。
なら、今の仕様だとプログラム側(上位)で「3文字以上かどうか」を判定してSQLを切り替えてやらないといけなくなる。
これだと使いにくいでしょ。
普通なら、
・2文字以下の場合は内部的にLIKEに切り替えてヒットするようにするか、
・2文字以下もヒットして欲しい場合はMATCHではなく別の予約語(NEARMATCH)とかを用意するか
だと思うけど。
Experimentalが何か知らないお前が一番頭悪いよ。なお853=856=俺な。
>>851に対して言える事は、
SQLiteは公式ドキュメントが素晴らしくよく出来てるので、引っかかったらまずは公式を読めって事だね。
はっきり言って大体公式だけで解決する。
859NAME IS NULL
2021/10/24(日) 21:37:28.36ID:??? >>858
> ・2文字以下の場合は内部的にLIKEに切り替えてヒットするようにするか、
> ・2文字以下もヒットして欲しい場合はMATCHではなく別の予約語(NEARMATCH)とかを用意するか
こんな提案、なおさらバカに見えるわ。w
> ・2文字以下の場合は内部的にLIKEに切り替えてヒットするようにするか、
> ・2文字以下もヒットして欲しい場合はMATCHではなく別の予約語(NEARMATCH)とかを用意するか
こんな提案、なおさらバカに見えるわ。w
860NAME IS NULL
2021/10/24(日) 21:57:35.95ID:??? >>859
だとするとお前が「仕様はどうあるべきか」考えるレベルに至ってないだけの話だよ。
変数で与えたらいちいち文字数なんて気にしてないのだから、今の仕様だと、
・プログラミング側で3文字以上であることをいちいち確認するか --- (A)
・さらに上位の仕様で3文字以上である事を保証する(例えばパスワードで8文字以上とかのあれ)か、 --- (B)
・SQLite側で何らかの対応をする --- (C)
のどれかが必要で、Aだと各ライブラリ/フレームワーク/ORM内に「3文字以上チェック」のコードが必要になるだろ。
CならそれがSQLite内の1箇所で済む。
だったら、全世界で重複コードが出来るだけ少なくなるように最適化する場合は、自ずとCになる、ってだけ。
それが分からないお前は、無駄にコード重複しまくってる馬鹿だと断定出来る。
本来そのコードがどこに置かれるべきか考える癖を付けたほうがいい。
で、それ含めてExperimentalで、つまり、
・3文字以下は無視の今の仕様でいいか、
・何らかの対策を盛り込むべきか
というわけだよ。実際に使ってフィードバックしろって事。
限界ギリギリまで高速にする場合は今の「無視」の仕様がよくて、現実的にほぼ2文字以下の検索なんて必要ないのならそれもあり、
いやいちいちラッパを用意するのがウザイ、なら仕様変更で2文字以下も自然にヒットするようになる、というだけ。
だからこそ Note になってるわけで。
だとするとお前が「仕様はどうあるべきか」考えるレベルに至ってないだけの話だよ。
変数で与えたらいちいち文字数なんて気にしてないのだから、今の仕様だと、
・プログラミング側で3文字以上であることをいちいち確認するか --- (A)
・さらに上位の仕様で3文字以上である事を保証する(例えばパスワードで8文字以上とかのあれ)か、 --- (B)
・SQLite側で何らかの対応をする --- (C)
のどれかが必要で、Aだと各ライブラリ/フレームワーク/ORM内に「3文字以上チェック」のコードが必要になるだろ。
CならそれがSQLite内の1箇所で済む。
だったら、全世界で重複コードが出来るだけ少なくなるように最適化する場合は、自ずとCになる、ってだけ。
それが分からないお前は、無駄にコード重複しまくってる馬鹿だと断定出来る。
本来そのコードがどこに置かれるべきか考える癖を付けたほうがいい。
で、それ含めてExperimentalで、つまり、
・3文字以下は無視の今の仕様でいいか、
・何らかの対策を盛り込むべきか
というわけだよ。実際に使ってフィードバックしろって事。
限界ギリギリまで高速にする場合は今の「無視」の仕様がよくて、現実的にほぼ2文字以下の検索なんて必要ないのならそれもあり、
いやいちいちラッパを用意するのがウザイ、なら仕様変更で2文字以下も自然にヒットするようになる、というだけ。
だからこそ Note になってるわけで。
861NAME IS NULL
2021/10/24(日) 22:37:19.63ID:???862NAME IS NULL
2021/10/24(日) 22:52:30.16ID:??? >>861
劇遅ではない。
クエリプランナ(つまりインタプリタ)でif文1個分だよ。しかもSQLiteだとC言語だ。
上位で対応するよりは段違いに速いよ。
まあどのみち君には仕様を考える頭はないし、君に決定権があるわけでもないからいいけどね。
劇遅ではない。
クエリプランナ(つまりインタプリタ)でif文1個分だよ。しかもSQLiteだとC言語だ。
上位で対応するよりは段違いに速いよ。
まあどのみち君には仕様を考える頭はないし、君に決定権があるわけでもないからいいけどね。
863NAME IS NULL
2021/10/24(日) 23:44:58.31ID:??? 長文はn-gram知らんかったんだけやんww
なんかこっちが恥ずかしくなるわ
なんかこっちが恥ずかしくなるわ
864NAME IS NULL
2021/10/25(月) 02:15:23.61ID:???865NAME IS NULL
2021/10/25(月) 09:50:27.32ID:???866NAME IS NULL
2021/11/15(月) 16:23:31.83ID:??? sqliteベースでFilemaker Proみたいに簡単にDBアプリ作れるソフトはないかのう...。
できればLinuxで....。あったら御教授くだされ。
とりあえず、PythonとPyQtでフロントエンド作り始めたんだけど、挫折しそう....
できればLinuxで....。あったら御教授くだされ。
とりあえず、PythonとPyQtでフロントエンド作り始めたんだけど、挫折しそう....
867NAME IS NULL
2021/11/15(月) 23:12:54.07ID:??? SQLite関係ないじゃん
868NAME IS NULL
2021/11/16(火) 00:05:32.11ID:??? webになるけどDjangoでどうよ
869NAME IS NULL
2021/11/24(水) 11:33:30.30ID:???870NAME IS NULL
2021/11/25(木) 14:46:07.36ID:??? Streamlitにしとけ
凄い楽にWebUI作れる
凄い楽にWebUI作れる
871NAME IS NULL
2021/12/08(水) 21:22:54.34ID:GVKAgvqd お前ら和歌山県出身の下村拓郎様(35歳独身、元自衛隊)をご存知か、この方は将来素晴しい人物になるから覚えておいて損はないぞ
872NAME IS NULL
2021/12/16(木) 17:34:57.34ID:??? >>866
LibreOffice Base
LibreOffice Base
873NAME IS NULL
2021/12/18(土) 18:46:18.71ID:dxWonGct いまさらこんなの使う理由がない。
874NAME IS NULL
2022/01/07(金) 15:12:25.30ID:U9oQR6GR 皆様ありがとう。866です。
おかげさまで住所録と顧客名簿をFileMakerからPySqlite3 & PyQtに移行できました。
どちらも15フィールド100レコードぐらい...年賀状づくりに間に合って良かったです。
おかげさまで住所録と顧客名簿をFileMakerからPySqlite3 & PyQtに移行できました。
どちらも15フィールド100レコードぐらい...年賀状づくりに間に合って良かったです。
875NAME IS NULL
2022/01/08(土) 20:27:21.00ID:??? デスマ明けか
876NAME IS NULL
2022/01/10(月) 09:50:25.42ID:??? >>874
PyQTなんか良く使うなw
PyQTなんか良く使うなw
877NAME IS NULL
2022/01/10(月) 16:02:33.92ID:??? >>876
慣れっすよ、慣れ。
だいぶ前にtkinterとWxとPyQtならべてデザイナの良さでPyQtになってしまいました。
結局pycsv(データ以降用)+PyQt(GUI)+pysqlite3(DB)+reportlab(印刷)という
構成で実装できました。とても他人に見せられる代物じゃございやせんが...
慣れっすよ、慣れ。
だいぶ前にtkinterとWxとPyQtならべてデザイナの良さでPyQtになってしまいました。
結局pycsv(データ以降用)+PyQt(GUI)+pysqlite3(DB)+reportlab(印刷)という
構成で実装できました。とても他人に見せられる代物じゃございやせんが...
878NAME IS NULL
2022/02/26(土) 12:28:50.84ID:LKcnRMUU ちょっと変わった質問なんですが
iPhone8+からiPhone13proに乗り換え、起動時の移行マネージャでほぼ中身が同じになったと思っています
iPhone13において、iPhone8+で削除したデータを復元させることは可能でしょうか?
移行がSQLiteそのまま移植しているのか、画像データのみ送っているのかにもよると思いますが...
このあたり知見ある方いましたら有難いです
iPhone8+からiPhone13proに乗り換え、起動時の移行マネージャでほぼ中身が同じになったと思っています
iPhone13において、iPhone8+で削除したデータを復元させることは可能でしょうか?
移行がSQLiteそのまま移植しているのか、画像データのみ送っているのかにもよると思いますが...
このあたり知見ある方いましたら有難いです
879NAME IS NULL
2022/05/14(土) 16:34:23.53ID:??? sqliteってasyncでrelationshipって効かなくないすか?
asyncにすると関係性なくなるけど
なぜかasyncにしなければrelationshipが効きます
asyncにすると関係性なくなるけど
なぜかasyncにしなければrelationshipが効きます
880879
2022/05/14(土) 16:51:33.27 改めて.db消してやったらすんなりできた・・
お騒がせしました
お騒がせしました
881879
2022/05/14(土) 17:14:23.65 勘違いだった 全然できてなかった・・
882NAME IS NULL
2022/05/15(日) 06:48:52.51ID:??? ちんちんシュッ!シュッ!シュッ!
883NAME IS NULL
2022/05/21(土) 05:13:32.36ID:x0/aYMyB sqlite4は結局どうなったんや
884NAME IS NULL
2022/05/21(土) 06:49:31.01ID:??? 成果はsqlite3に取り込まれて終了
885NAME IS NULL
2022/05/22(日) 01:43:04.34ID:tr89Osbf >>884
サンクス
サンクス
886NAME IS NULL
2022/08/10(水) 11:02:53.87ID:??? SQLiteを優先順位付きのキューとして使うのは 良いことでしょうか
複数のプロセス(CとかPHPとかbashとか)からのメッセージを
別のひとつのプロセスがそこそこのタイミングで受け取りたい
(毎秒チェックで許されるくらい)
複数のプロセス(CとかPHPとかbashとか)からのメッセージを
別のひとつのプロセスがそこそこのタイミングで受け取りたい
(毎秒チェックで許されるくらい)
887NAME IS NULL
2022/08/28(日) 16:18:07.78ID:??? >>886
良いことか悪いことかは主観によるので何とも。
実現可能性、という観点でいくと、FAQによれば、
https://www.sqlite.org/faq.html#q19
SQLiteがHDDへのデータの書き込みを完全に保証するためには、HDDのプラッタが2回転するのを待つ必要があり、
一般的な7200rpmのHDDは1分に7200回転=1秒に120回転なので、1秒につき60回のトランザクションが限界。
ということなので、受信側のSELECTが毎秒1回として、送信側のINSERT頻度次第では可能。
ただし、毎秒60トランザクションは理論値で、実際にはSQLite以外のプロセスもHDDを使うだろうから、
例えば全HDDアクセスの半分を他のプロセスで使うと仮定すると30回/秒まで、もしくはHDDがビジーで
90%を他のプロセスが使う環境であればSQLiteのトランザクションは6回/秒が限界ということになる。
SSDの場合は多分もっと多いけどね。その辺はデバイスの書き込み能力によって計算が必要。
あとはトランザクション内で色々操作したらその分SQLiteからHDDへの書き込み回数も増えるだろうから、
実際のトランザクション数の限界はもうちょい減るかもね。
キューなら不用になった行は受信側で印をつけたり消したりもするだろうし。
良いことか悪いことかは主観によるので何とも。
実現可能性、という観点でいくと、FAQによれば、
https://www.sqlite.org/faq.html#q19
SQLiteがHDDへのデータの書き込みを完全に保証するためには、HDDのプラッタが2回転するのを待つ必要があり、
一般的な7200rpmのHDDは1分に7200回転=1秒に120回転なので、1秒につき60回のトランザクションが限界。
ということなので、受信側のSELECTが毎秒1回として、送信側のINSERT頻度次第では可能。
ただし、毎秒60トランザクションは理論値で、実際にはSQLite以外のプロセスもHDDを使うだろうから、
例えば全HDDアクセスの半分を他のプロセスで使うと仮定すると30回/秒まで、もしくはHDDがビジーで
90%を他のプロセスが使う環境であればSQLiteのトランザクションは6回/秒が限界ということになる。
SSDの場合は多分もっと多いけどね。その辺はデバイスの書き込み能力によって計算が必要。
あとはトランザクション内で色々操作したらその分SQLiteからHDDへの書き込み回数も増えるだろうから、
実際のトランザクション数の限界はもうちょい減るかもね。
キューなら不用になった行は受信側で印をつけたり消したりもするだろうし。
888NAME IS NULL
2022/08/28(日) 17:15:31.43ID:???889NAME IS NULL
2022/08/28(日) 17:22:14.27ID:??? 意味がないかどうかは要件次第でしょ
890NAME IS NULL
2022/08/28(日) 22:47:29.13ID:??? そりゃすげー特殊な案件まで含めたらそんな案件もあるのかも知れんけどねw
891NAME IS NULL
2022/08/29(月) 13:53:59.82ID:??? SSDだとどうなのか
892NAME IS NULL
2022/09/03(土) 09:19:43.37ID:??? プロセス間のキューならOS落ちても起動後に続きから処理したいケースなんて
いくらでもあるから、すげー特殊なんてこたあない。普通にあり得る。
PRAGMA synchronous=OFFってよく分かってないんだけどディスクにsyncしなくても他のプロセスとの
一貫性って保てるのかな?OS介してればディスクにsyncする前でもキャッシュから読まれるからセーフ?
ネットワークファイルシステムだったら駄目っぽいけどローカルで完結するなら良いのかな・・?
いくらでもあるから、すげー特殊なんてこたあない。普通にあり得る。
PRAGMA synchronous=OFFってよく分かってないんだけどディスクにsyncしなくても他のプロセスとの
一貫性って保てるのかな?OS介してればディスクにsyncする前でもキャッシュから読まれるからセーフ?
ネットワークファイルシステムだったら駄目っぽいけどローカルで完結するなら良いのかな・・?
893NAME IS NULL
2022/09/03(土) 09:41:50.61ID:??? >>892
> プロセス間のキューならOS落ちても起動後に続きから処理したいケースなんていくらでもあるから、すげー特殊なんてこたあない。普通にあり得る。
簡単そうに言ってるけどプロセス側もどこまで処理したかをキチンと記録して回復しないといけないしそもそもOS落ちるってことはどこまで記録されてるかの保証もないしヘタしたらファイルシステムぶっ壊れてる可能性すらあるのに普通にあるとか言われても草
> PRAGMA synchronous=OFFってよく分かってないんだけどディスクにsyncしなくても他のプロセスとの
> 一貫性って保てるのかな?OS介してればディスクにsyncする前でもキャッシュから読まれるからセーフ?
簡単に言えばキャッシュの内容をストレージにいちいち反映させない(暇になったら反映する)ってこと
一貫性の管理はメモリー上でやってるから問題ない
> ネットワークファイルシステムだったら駄目っぽいけどローカルで完結するなら良いのかな・・?
ネットワークファイルシステムでも同じだよ、ファイルシステム自体はサーバー側にあるんだし
> プロセス間のキューならOS落ちても起動後に続きから処理したいケースなんていくらでもあるから、すげー特殊なんてこたあない。普通にあり得る。
簡単そうに言ってるけどプロセス側もどこまで処理したかをキチンと記録して回復しないといけないしそもそもOS落ちるってことはどこまで記録されてるかの保証もないしヘタしたらファイルシステムぶっ壊れてる可能性すらあるのに普通にあるとか言われても草
> PRAGMA synchronous=OFFってよく分かってないんだけどディスクにsyncしなくても他のプロセスとの
> 一貫性って保てるのかな?OS介してればディスクにsyncする前でもキャッシュから読まれるからセーフ?
簡単に言えばキャッシュの内容をストレージにいちいち反映させない(暇になったら反映する)ってこと
一貫性の管理はメモリー上でやってるから問題ない
> ネットワークファイルシステムだったら駄目っぽいけどローカルで完結するなら良いのかな・・?
ネットワークファイルシステムでも同じだよ、ファイルシステム自体はサーバー側にあるんだし
894NAME IS NULL
2022/09/03(土) 16:24:29.73ID:???895NAME IS NULL
2022/09/03(土) 16:36:14.26ID:???896NAME IS NULL
2022/09/05(月) 10:23:23.55ID:??? Chrome開発チームがSQLiteチームとWebAssembly版SQLiteを開発中。Webブラウザ上からのファイル書き込みで永続化も可能。Web SQL APIの代替として - Publickey
https://www.publickey1.jp/blog/22/chromesqlitewebassemblysqlitewebweb_sql_api.html
https://www.publickey1.jp/blog/22/chromesqlitewebassemblysqlitewebweb_sql_api.html
897NAME IS NULL
2022/09/07(水) 21:37:10.98ID:???898NAME IS NULL
2022/09/07(水) 21:48:58.45ID:???899NAME IS NULL
2022/09/08(木) 00:12:11.61ID:??? >>898
そういうのトランザクション管理の基本だよ
そういうのトランザクション管理の基本だよ
900NAME IS NULL
2022/09/08(木) 04:13:22.16ID:???901NAME IS NULL
2022/09/08(木) 09:33:00.35ID:???902NAME IS NULL
2022/09/08(木) 10:10:19.28ID:???903NAME IS NULL
2022/09/08(木) 12:10:26.32ID:???904NAME IS NULL
2022/09/08(木) 17:08:13.58ID:???905NAME IS NULL
2022/09/08(木) 17:38:42.26ID:??? 仕事のシステムだけど、ぜんぜんオッケーよ
「リチャードが大丈夫っつったしテストもすげーしたからセーフ」
って仕様書にも書いたよ
「リチャードが大丈夫っつったしテストもすげーしたからセーフ」
って仕様書にも書いたよ
906NAME IS NULL
2022/09/08(木) 18:02:08.55ID:???907NAME IS NULL
2022/09/08(木) 18:49:30.76ID:??? >>903
OSクラッシュや電源断の時のトランザクションのatomicityは保証されてるよ
DBがcorruptするのは使い方が間違ってるか設定が間違ってるかSQLiteのバグかOSの欠陥
https://sqlite.org/transactional.html
原理を知りたければ説明書読んでね
https://sqlite.org/atomiccommit.html
OSクラッシュや電源断の時のトランザクションのatomicityは保証されてるよ
DBがcorruptするのは使い方が間違ってるか設定が間違ってるかSQLiteのバグかOSの欠陥
https://sqlite.org/transactional.html
原理を知りたければ説明書読んでね
https://sqlite.org/atomiccommit.html
908NAME IS NULL
2022/09/08(木) 20:33:10.76ID:???909NAME IS NULL
2022/09/08(木) 20:42:24.40ID:??? >>907
リンク先ちゃんと読んでる?
If after power is restored the file is only partially deleted, if some of its data has been altered or erased, or the file has been truncated but not completely removed, then database corruption will likely result.
って書いてますけど?w
そもそも普通のOSは100%ファイルシステムが壊れないと保証してないのにその上に載ってるDBファイルが壊れない保証なんてできるわけないだろ
リンク先ちゃんと読んでる?
If after power is restored the file is only partially deleted, if some of its data has been altered or erased, or the file has been truncated but not completely removed, then database corruption will likely result.
って書いてますけど?w
そもそも普通のOSは100%ファイルシステムが壊れないと保証してないのにその上に載ってるDBファイルが壊れない保証なんてできるわけないだろ
910NAME IS NULL
2022/09/08(木) 22:18:38.75ID:???911NAME IS NULL
2022/09/08(木) 22:34:55.79ID:???912NAME IS NULL
2022/09/11(日) 23:09:32.22ID:??? 荒れてるなあ。
OS単体だったらメインフレームでもない限りシステムダウン時のデータ保証はされないのが普通だけど、
それを気にするような要件なら当然ソフト(ファイルシステム・ドライバ・ミドルウェア)も
ハード(HDD/SSD・ストレージ装置・キャッシュ制御)もそれなりのものを入れて
システム全体で保証するだろうから、SQLite観点で仕様を検討する上ではその議論は不毛じゃないかね。
SQLiteを使ってるプロセスとしてデータ保証が出来ていればOKと思う。
データ保証が必要なキューのアーキテクチャの云々はスレ違いなので他スレでどうぞ。
OS単体だったらメインフレームでもない限りシステムダウン時のデータ保証はされないのが普通だけど、
それを気にするような要件なら当然ソフト(ファイルシステム・ドライバ・ミドルウェア)も
ハード(HDD/SSD・ストレージ装置・キャッシュ制御)もそれなりのものを入れて
システム全体で保証するだろうから、SQLite観点で仕様を検討する上ではその議論は不毛じゃないかね。
SQLiteを使ってるプロセスとしてデータ保証が出来ていればOKと思う。
データ保証が必要なキューのアーキテクチャの云々はスレ違いなので他スレでどうぞ。
913NAME IS NULL
2022/09/12(月) 03:03:35.28ID:??? >>912
それトランザクションのAtomicityを保証するという話と違わないか?
それトランザクションのAtomicityを保証するという話と違わないか?
914NAME IS NULL
2022/09/12(月) 06:19:00.62ID:???915NAME IS NULL
2022/09/12(月) 06:40:52.72ID:??? 何事も過信は禁物で、各レイヤでのバックアップは不可欠
運用システムのリスク許容度に応じて各自が判断しましょうできるように力を養いましょう
運用システムのリスク許容度に応じて各自が判断しましょうできるように力を養いましょう
916NAME IS NULL
2022/09/12(月) 10:01:21.31ID:??? ジャーナリングつきのファイルシステムなら急な電源切断は、保証はされないけど、だいたい壊れないやろ。
それでよければいいだけの話。
それでよければいいだけの話。
917NAME IS NULL
2022/09/12(月) 10:50:19.58ID:???918NAME IS NULL
2022/09/12(月) 11:15:59.66ID:??? >>917
申し訳ないが主語をちゃんと書いてくれ
申し訳ないが主語をちゃんと書いてくれ
919NAME IS NULL
2022/09/12(月) 15:35:59.82ID:??? >>918
お前もな
お前もな
920NAME IS NULL
2022/09/12(月) 15:53:19.49ID:??? さすがに>>918の文章を理解できない人には用はないので無駄に絡んでこないでねw
921NAME IS NULL
2022/09/12(月) 20:23:51.04ID:??? >>920
ウザ絡みはヤメレ
ウザ絡みはヤメレ
922NAME IS NULL
2022/09/12(月) 20:59:28.24ID:???923NAME IS NULL
2022/09/12(月) 21:49:29.06ID:??? ID表示されないとNG出来なくて不便すぎるわ
924NAME IS NULL
2022/09/12(月) 21:57:33.35ID:??? 『データ保証』みたいな曖昧な言葉を使ってるからダメなんだよ
925NAME IS NULL
2022/09/13(火) 09:37:38.51ID:???926NAME IS NULL
2022/09/14(水) 02:14:04.42ID:waXkrZmr RDBMSをExcelだと思っているやつは多いからな。
927NAME IS NULL
2022/09/14(水) 10:36:26.09ID:??? まあ世の中の9割5分のデータベースはエクセルで代用できるしな
928NAME IS NULL
2022/09/14(水) 15:00:13.95ID:??? >>927
代用できるというか、活用できてないだけじゃね?
代用できるというか、活用できてないだけじゃね?
929NAME IS NULL
2022/09/14(水) 15:08:09.03ID:??? DBの代用しちゃってるくらいならまだ良い方。
仕様書をエクセルで作る人とか、スクリーンショット送ってと言ったらエクセルに貼り付けて送ってくる人とか、色々いるよ・・・。
仕様書をエクセルで作る人とか、スクリーンショット送ってと言ったらエクセルに貼り付けて送ってくる人とか、色々いるよ・・・。
930NAME IS NULL
2022/09/14(水) 17:05:54.06ID:??? スクショはどうするのがいいの?
技術に明るい人だけが閲覧するものならどうにでもなるんだけど
そうじゃない人も見るようなやつ
技術に明るい人だけが閲覧するものならどうにでもなるんだけど
そうじゃない人も見るようなやつ
931NAME IS NULL
2022/09/14(水) 18:13:56.52ID:??? ペイントでjpegにでもすれば
932NAME IS NULL
2022/09/14(水) 18:49:38.06ID:??? 単なるスクショだけならjpegとかでもいいけど複数のスクショにコメント入れたりしたい場合はExcelでもいいと思うよ
933NAME IS NULL
2022/09/15(木) 10:10:26.20ID:??? 未だにexcelを表計算ソフトかなんかだと思ってる人がいるのな
934NAME IS NULL
2022/09/15(木) 14:15:37.34ID:??? 画像にコメント入れるだけならパワポで良いでしょ。せめてワード。エクセルは無い。
935NAME IS NULL
2022/09/15(木) 15:20:46.96ID:??? PowerPointもWordもページの制約が大きすぎるからそれに合わない用途の場合にExcelが選ばれる
設計書にスクショを含める場合とかならWord使うしユーザーにUIを説明するような用途ならパワポ使う
特にスクショを多く含むWordは手間書ければキレイに見せられるがメンテコストが高い
そしてここはSQLiteスレ
設計書にスクショを含める場合とかならWord使うしユーザーにUIを説明するような用途ならパワポ使う
特にスクショを多く含むWordは手間書ければキレイに見せられるがメンテコストが高い
そしてここはSQLiteスレ
936NAME IS NULL
2022/09/16(金) 20:31:07.99ID:bDV4ndIn Excel等のOffice製品に貼り付けた画像は、ExcelファイルのZIP圧縮を展開すれば、Excel内部では画像ファイルとして存在しているので、Excelファイルに貼り付けるのも悪くはない。
画像ファイルで渡してこないことを馬鹿にしているけど、おそらく馬鹿にしているやつもWindowsのスナッピングツールではなく、プリントスクリーンキーで画面キャプチャを取っていそう。
どっちもどっちだろうな。
画像ファイルで渡してこないことを馬鹿にしているけど、おそらく馬鹿にしているやつもWindowsのスナッピングツールではなく、プリントスクリーンキーで画面キャプチャを取っていそう。
どっちもどっちだろうな。
937NAME IS NULL
2022/09/16(金) 21:39:33.85ID:??? さらにどうでもいい比較を放り込んでくるいつものキチさんw
938NAME IS NULL
2022/09/19(月) 15:29:05.92ID:kkHv2WY1 なんでこんな素人がここにいるのかがわからないよな
939NAME IS NULL
2022/10/26(水) 14:05:44.40ID:??? 22-Year-Old Vulnerability Reported in Widely Used SQLite Database Library
https://thehackernews.com/2022/10/22-year-old-vulnerability-reported-in.html
SQLite Release 3.39.2 On 2022-07-21
https://sqlite.org/releaselog/3_39_2.html
>>この脆弱性は、数十年前には非現実的と見なされていたシナリオ (入力として 1 GB の文字列を割り当てる) が、64 ビット コンピューティングシステムの出現により実現可能になった例でもあります。
https://thehackernews.com/2022/10/22-year-old-vulnerability-reported-in.html
SQLite Release 3.39.2 On 2022-07-21
https://sqlite.org/releaselog/3_39_2.html
>>この脆弱性は、数十年前には非現実的と見なされていたシナリオ (入力として 1 GB の文字列を割り当てる) が、64 ビット コンピューティングシステムの出現により実現可能になった例でもあります。
940NAME IS NULL
2022/10/27(木) 01:09:40.82ID:??? へー、興味深い。そういうのは他のソフトとかでもあったりするんだろうな。
941NAME IS NULL
2022/10/29(土) 21:05:59.61ID:EmUS1oSs 2000年まで使われると思わずに西暦の下二桁が99までしか考慮されていなかったのが、まだ25年くらい前の話だしな。
942NAME IS NULL
2022/10/29(土) 21:26:11.28ID:??? ほんの30年前のHDDには504MBの壁とかあったしな
943NAME IS NULL
2022/10/30(日) 01:25:04.75ID:??? アドレス空間は64KBなのにメガロムは128KBもあってさ
バンク切り替えの概念は当時の自分には難しすぎてな・・・
バンク切り替えの概念は当時の自分には難しすぎてな・・・
944NAME IS NULL
2022/10/31(月) 12:17:57.74ID:??? SQLiteの正式なWebAssembly版「SQLite3 WASM/JS」が登場 - Publickey
https://www.publickey1.jp/blog/22/sqlitewebassemblysqlite3_wasmjs.html
https://www.publickey1.jp/blog/22/sqlitewebassemblysqlite3_wasmjs.html
945NAME IS NULL
2022/11/21(月) 11:11:59.56ID:??? 「SQLite3 WASM/JS」パブリックベータ公開。SQLite 3.40でサポート開始、WebブラウザなどでSQLiteが実行可能に - Publickey
https://www.publickey1.jp/blog/22/sqlite3_wasmjssqlite_340websqlite.html
>>本バージョンから...(略)...配布される公式のバイナリにLinux版、Windows版、Mac OS X版、Android版などと共に「SQLite3 WASM/JS」が含まれるようになりました。
https://www.publickey1.jp/blog/22/sqlite3_wasmjssqlite_340websqlite.html
>>本バージョンから...(略)...配布される公式のバイナリにLinux版、Windows版、Mac OS X版、Android版などと共に「SQLite3 WASM/JS」が含まれるようになりました。
946NAME IS NULL
2023/01/13(金) 08:42:02.75ID:??? SQLite3 WASM/JS、Origin Private File Systemを用いてChrome上の高速なローカルDBが機能するとGoogleが明らかに、廃止されたWeb SQLの代替として利用可能 - Publickey
https://www.publickey1.jp/blog/23/sqlite3_wasmjsorigin_private_file_systemchromedbgoogleweb_sql.html
https://www.publickey1.jp/blog/23/sqlite3_wasmjsorigin_private_file_systemchromedbgoogleweb_sql.html
947NAME IS NULL
2023/01/17(火) 18:04:50.16ID:??? みんなどのくらいのサイズで使ってるの?
一番大きいテーブルで一万件くらい?
スマホアプリにちょっと乗っける程度で使うもんなの?
一番大きいテーブルで一万件くらい?
スマホアプリにちょっと乗っける程度で使うもんなの?
948NAME IS NULL
2023/01/20(金) 08:56:43.16ID:???949NAME IS NULL
2023/01/20(金) 20:57:01.04ID:???950NAME IS NULL
2023/01/21(土) 16:11:48.55ID:??? 1億件くらいまでなら余力があると思う
951NAME IS NULL
2023/01/21(土) 22:51:28.09ID:??? selectだけならなんぼでもいけそうやな
B-Treeの構造上
B-Treeの構造上
952NAME IS NULL
2023/01/26(木) 03:02:27.75ID:0ZdAuIEw マシンパワーが上がっているから、処理性能も連動して上がる。
953NAME IS NULL
2023/01/26(木) 21:16:21.56ID:??? https://www.sqlite.org/np1queryprob.html
> The SQLite database runs in the same process address space as the application.
> Queries do not involve message round-trips, only a function call.
HDD→SSDでクッソ恩恵受けてそう。
> The SQLite database runs in the same process address space as the application.
> Queries do not involve message round-trips, only a function call.
HDD→SSDでクッソ恩恵受けてそう。
954NAME IS NULL
2023/02/03(金) 13:26:52.89ID:??? デスクトップに a.db て適当な名前のdb作って書き込んでたら
書き込み中に a.nal ってファイルが現れてフイタ
書き込み中に a.nal ってファイルが現れてフイタ
955NAME IS NULL
2023/02/14(火) 07:54:16.00ID:??? ちんちん!シュッ!シュッ!シュッ!
956NAME IS NULL
2023/03/14(火) 20:16:24.68ID:9pflDpUJ インサートだけの簡単なプログラムで使ってるけどdbファイルが2GB近くになった
dbファイルを消して新たに同じデータを流し込んだら3MB程度なのに
何でだろう
dbファイルを消して新たに同じデータを流し込んだら3MB程度なのに
何でだろう
957NAME IS NULL
2023/03/14(火) 23:27:22.57ID:??? sqlite3_analyzerで分析してくださいな
https://www.sqlite.org/sqlanalyze.html
https://www.sqlite.org/sqlanalyze.html
958NAME IS NULL
2023/03/15(水) 06:44:08.28ID:q1tU6ADy そのツールは知りませんでした
分析してみます
ありがとうございます
分析してみます
ありがとうございます
959NAME IS NULL
2023/03/15(水) 18:08:02.02ID:??? その2GBをvacuumしたら3MBになるみたいな簡単なオチではないよね・・・?
960NAME IS NULL
2023/03/15(水) 19:12:45.18ID:??? >>959
そりゃ当然なるやろ
VACUUM相当のことをやったら3MBになったと書いてるじゃん
INSERTだけで3MBが2GBになる理由がわからなければ
アプリで定期的にVACUUMしなければいけないかわからないから
質問者的には意味が無いと思うよ
そりゃ当然なるやろ
VACUUM相当のことをやったら3MBになったと書いてるじゃん
INSERTだけで3MBが2GBになる理由がわからなければ
アプリで定期的にVACUUMしなければいけないかわからないから
質問者的には意味が無いと思うよ
961NAME IS NULL
2023/03/15(水) 21:50:42.97ID:??? 「インサートだけの簡単なプログラム」←これが一番怪しい気がする。
実はインサートだけじゃなかった、に一票。
実はインサートだけじゃなかった、に一票。
962NAME IS NULL
2023/04/11(火) 07:27:01.54ID:9Zr80laE SQLiteってトランザクションログとかあるでしょうか
実際の入力値に比べてdbファイルが随分デカくなってる気がするので
実際の入力値に比べてdbファイルが随分デカくなってる気がするので
963NAME IS NULL
2023/04/11(火) 16:57:58.97ID:2cL7SnhE dbファイルが大きくなる問題に悩んでいる者ですがTextに長い文字が入ってくると項目の長さも拡張されるでしょうか
SQLServerでのMAXの精度指定のようなイメージです
ちなみにバキュームをしてもdbファイルのサイズは変わらないので知らない処理がこっそりデリートしてる事は無いと思います
SQLServerでのMAXの精度指定のようなイメージです
ちなみにバキュームをしてもdbファイルのサイズは変わらないので知らない処理がこっそりデリートしてる事は無いと思います
964NAME IS NULL
2023/04/11(火) 20:01:26.80ID:+S9P9M6L 隙間にデータを埋めたり、小さい隙間をなくす処理をしていたりと、初心者しか思いつかないようなネタを考えてられるのがすごいな。
あちこちで同じネタを製品別に書くのも飽きないか?
あちこちで同じネタを製品別に書くのも飽きないか?
965NAME IS NULL
2023/04/11(火) 20:02:59.91ID:+S9P9M6L ファイル内の物理的なデータ位置が頻繁に変わる実装じゃ、使い物にならねえよw
966NAME IS NULL
2023/04/11(火) 20:44:25.60ID:+S9P9M6L ストレージの断片化を進める仕組みにメリットがあるかと考えればわかると思う
狭いところを使おうとして、他のデータを移動させるのもメリットがあるのか
狭いところを使おうとして、他のデータを移動させるのもメリットがあるのか
967NAME IS NULL
2023/04/11(火) 20:56:22.64ID:+S9P9M6L >>963
SQLiteのtext型は、高度なRDBMSのLOB型と同じで、サイズが巨大だから安易に使うとどんどんデータファイルが大きくなる。
text型は巨大な文字データ型。
自分が格納している文字列に対して、使わない長さの領域を確保するので、INSERTでレコードが増えれば、ものすごい勢いでデータファイルが大きくなる。
SQLiteは大量のレコードを扱う用途には向いていない。
SQLiteのtext型は、高度なRDBMSのLOB型と同じで、サイズが巨大だから安易に使うとどんどんデータファイルが大きくなる。
text型は巨大な文字データ型。
自分が格納している文字列に対して、使わない長さの領域を確保するので、INSERTでレコードが増えれば、ものすごい勢いでデータファイルが大きくなる。
SQLiteは大量のレコードを扱う用途には向いていない。
968NAME IS NULL
2023/04/11(火) 21:04:44.42ID:??? 一個のファイルですもんねぇ。
969NAME IS NULL
2023/04/11(火) 21:18:51.61ID:???970NAME IS NULL
2023/04/11(火) 23:28:05.04ID:??? まーたいい加減な嘘連投するやつ来てるね
質問者が騙されないことを祈る
質問者が騙されないことを祈る
971NAME IS NULL
2023/04/12(水) 08:36:27.57ID:+esFaGz3 SQLite公式マニュアル
https://www.sqlite.org/index.html
text型は文字列型というより、文章・文書の内容を格納する大きな文字データ型
text型を使うとレコードサイズが大きくなるため、レコードが増えるとdbファイル(データファイル)がすぐに大きくなる。
バキュームしてもtext型のカラムが確保している部分が大きいので、さほどdbファイル(データファイル)は小さくならない。
https://www.sqlite.org/index.html
text型は文字列型というより、文章・文書の内容を格納する大きな文字データ型
text型を使うとレコードサイズが大きくなるため、レコードが増えるとdbファイル(データファイル)がすぐに大きくなる。
バキュームしてもtext型のカラムが確保している部分が大きいので、さほどdbファイル(データファイル)は小さくならない。
972NAME IS NULL
2023/04/12(水) 09:45:02.89ID:??? >>971
どこにそんなこと書いてあるのか・・・
どこにそんなこと書いてあるのか・・・
973NAME IS NULL
2023/04/12(水) 17:29:05.92ID:??? いつもの法螺吹き君はカラムがすべて固定長だとでも思ってるみたいだねww
974NAME IS NULL
2023/04/12(水) 17:30:19.05ID:??? 保存してる文字列のサイズが大きければ保存先のファイルが大きくなるのは当然だよね
圧縮すれば小さくなるけどそれはデータ型とは関係のない話
圧縮すれば小さくなるけどそれはデータ型とは関係のない話
975NAME IS NULL
2023/04/12(水) 20:20:43.81ID:+esFaGz3 >>974
そういうのは素人考えだよ?
そういうのは素人考えだよ?
976NAME IS NULL
2023/04/12(水) 20:28:28.28ID:+esFaGz3 >>973
固定長じゃなくて、ブロックのような単位で領域を確保する。
あなたのような素人にはファイルのどこにデータがあるのか考えたこともないんだろうね。
バキュームは位置が変わるんだよ。
意味がある文字列が長い文字列に更新されたときに離れたところに続きのデータを配置すると思っているかのような言い草だけど、それこそ古い考え方だよ。
VSAMファイルみたいな階層型データベースの改良版ではないぞ。
固定長じゃなくて、ブロックのような単位で領域を確保する。
あなたのような素人にはファイルのどこにデータがあるのか考えたこともないんだろうね。
バキュームは位置が変わるんだよ。
意味がある文字列が長い文字列に更新されたときに離れたところに続きのデータを配置すると思っているかのような言い草だけど、それこそ古い考え方だよ。
VSAMファイルみたいな階層型データベースの改良版ではないぞ。
977NAME IS NULL
2023/04/12(水) 20:29:09.31ID:+esFaGz3 >>974
それはまったく違う。dbファイルの中身を比較すればわかるだろ
それはまったく違う。dbファイルの中身を比較すればわかるだろ
978NAME IS NULL
2023/04/12(水) 22:20:48.62ID:??? また関係ない話を持ち出して法螺吹くボラクルww
>固定長じゃなくて、ブロックのような単位で領域を確保する。
固定長の意味すら知らないんだなww
>バキュームしてもtext型のカラムが確保している部分が大きいので、さほどdbファイル(データファイル)は小さくならない。
知りもしないことで↑こんな嘘ついてる暇があったら基礎を勉強してねw
>固定長じゃなくて、ブロックのような単位で領域を確保する。
固定長の意味すら知らないんだなww
>バキュームしてもtext型のカラムが確保している部分が大きいので、さほどdbファイル(データファイル)は小さくならない。
知りもしないことで↑こんな嘘ついてる暇があったら基礎を勉強してねw
979NAME IS NULL
2023/04/12(水) 22:22:44.06ID:+esFaGz3980NAME IS NULL
2023/04/16(日) 15:33:14.96ID:??? エンジン
981NAME IS NULL
2023/04/27(木) 19:57:15.11ID:WFjDl1XV 竹田
982NAME IS NULL
2023/04/27(木) 19:57:39.34ID:??? 私の名前はマイクです
983NAME IS NULL
2023/04/27(木) 19:57:52.73ID:??? ダジャレかよ、
984NAME IS NULL
2023/04/27(木) 19:59:23.05ID:??? こゆた
985NAME IS NULL
2023/04/27(木) 20:00:11.16ID:??? 看板は
986NAME IS NULL
2023/04/27(木) 20:00:28.67ID:??? 燻し銀
987NAME IS NULL
2023/04/27(木) 20:00:42.45ID:??? ガラパゴス諸島
988NAME IS NULL
2023/04/27(木) 20:01:21.74ID:??? 、
989NAME IS NULL
2023/04/27(木) 20:03:19.72ID:??? !?
990NAME IS NULL
2023/04/27(木) 20:03:32.84ID:??? もゆる
991NAME IS NULL
2023/04/27(木) 20:06:04.15ID:??? おんか
992NAME IS NULL
2023/04/27(木) 20:06:08.86ID:??? ヒート
993NAME IS NULL
2023/04/27(木) 20:06:50.81ID:??? しはた
994NAME IS NULL
2023/04/27(木) 20:06:56.04ID:??? 方法
995NAME IS NULL
2023/04/27(木) 21:06:14.13ID:??? てす
996NAME IS NULL
2023/04/27(木) 21:06:25.58ID:??? テスト
997NAME IS NULL
2023/04/27(木) 21:06:47.71ID:??? 。
998NAME IS NULL
2023/04/27(木) 21:07:21.19ID:??? テスト!
999NAME IS NULL
2023/04/27(木) 21:07:36.83ID:??? 。
1000NAME IS NULL
2023/04/27(木) 21:07:49.27ID:??? テスト
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 3905日 23時間 13分 33秒
新しいスレッドを立ててください。
life time: 3905日 23時間 13分 33秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 「米価このまま維持されてしかるべきだ」佐賀県知事、稲作農家の経営踏まえ言及 [蚤の市★]
- 駅前の一等地にデータセンター計画、「人が入れない施設が建っていいのか」と反対の声相次ぐ [蚤の市★]
- 【ドジャース3連敗】今季2度目の3連敗...大谷翔平は無安打、山本由伸5回3失点で2敗目 パイレーツ・スキーンズ7回途中無失点9K [鉄チーズ烏★]
- 木村拓哉が「ドッグウェアは人間のエゴ」発言、上沼恵美子が反論し論争勃発 獣医師は「必要性は犬それぞれ」 [ネギうどん★]
- 万博会場内から救急搬送された来場者が死亡 万博協会「適切な処置」 [少考さん★]
- 日本の未来の姿!?1人当たりGDP世界5位→82位へ転落した「元・先進国」の静かなる衰退を現地ルポ (泉 秀一氏) [少考さん★]
- マジでお前らが大阪万博をそこまで叩く理由何?やっぱ税金使われてるのはムカつくの? [434776867]
- 北海道の旭川で美人女子高生16歳が行方不明! 名探偵ケンモくんの出番だぞ! [205023192]
- ▶土曜お昼の白上フブキすこすこスレ
- 【悲報】財務省「減税したいってことは、教育も医療も生活保護も警察も道路も必要ないってことですよね?それでいいんですね [257926174]
- 【画像】ソフト・オン・デマンドの入社式、新入女子社員は全員脱がなければいけない規則だった😭 [779857986]
- 日本が世界に誇れるものって何が残ってるの?