Nucleus/SQLite

Jeans & Development 電子ブロック工房 三日坊主 フロントページ

Nucleus w/SQLite [Nucleus/SQLite]

2006年4月17日

 SQLite 版 Nucleus (ver 3.24) のインストール・及び使用方法に関する説明です。ここで言うSQLite 版 Nucleus とは、Nucleus のオフィシャルサイト(http://nucleuscms.org/ 及び  http://japan.nucleuscms.org/)から取得した物に若干の改造を施し、私が作成した SQLite-MySQLラッパーを付加してGPLのライセンスの元で配布している物であり、Nucleus のオフィシャルプロダクトではありません。その点、ご承知おきください。

Nucleus JP Forum でダウンロードできます

INTERVAL翻訳 [Nucleus/SQLite]

2006年3月20日

ADDDATE(date,INTERVAL expr type)  
DATE_ADD(date,INTERVAL expr type) , DATE_SUB(date,INTERVAL expr type)
SUBDATE(date,INTERVAL expr type) 

SHOW FIELDS FROM翻訳 [Nucleus/SQLite]

2006年3月20日

SHOW FIELDS FROM
nucleus_itemの場合
CREATE TABLE `nucleus_item` (
  `inumber` int(11) NOT NULL auto_increment,
  `ititle` varchar(160) default NULL,
  `ibody` text NOT NULL,
  `imore` text,
  `iblog` int(11) NOT NULL default '0',
  `iauthor` int(11) NOT NULL default '0',
  `itime` datetime NOT NULL default '0000-00-00 00:00:00',
  `iclosed` tinyint(2) NOT NULL default '0',
  `idraft` tinyint(2) NOT NULL default '0',
  `ikarmapos` int(11) NOT NULL default '0',
  `icat` int(11) default NULL,
  `ikarmaneg` int(11) NOT NULL default '0',
  PRIMARY KEY  (`inumber`),
  UNIQUE KEY `inumber` (`inumber`),
  KEY `itime` (`itime`),
  FULLTEXT KEY `ibody` (`ibody`,`ititle`,`imore`)
) TYPE=MyISAM PACK_KEYS=0;

SHOW KEYS FROM 翻訳 [Nucleus/SQLite]

2006年3月19日

kosugiatkipsさんに教わった命令で、MySQL の『SHOW KEYS FROM』に相当する部分が見えてきた。キー(インデックス)の作成は、SQLiteでは、

CREATE INDEX 'ibody' ON 'nucleus_item' ('ibody','ititle','imore')");

のようにすればよい。この書式をテーブルから読み出すには、

$res=sqlite_mysql_query("SELECT sql,name FROM sqlite_master WHERE type = 'index' and tbl_name = 'nucleus_item' ORDER BY type DESC");
while ($a=sqlite_mysql_fetch_assoc($res)) foreach($a as $key=>$value) echo "$key=>$value</br>\n";

で良いらしい。実行結果の例は、次の通り。

sql=>CREATE INDEX 'itime' ON 'nucleus_item' ('itime')
name=>'itime'
sql=>CREATE UNIQUE INDEX 'inumber' ON 'nucleus_item' ('inumber')
name=>'inumber'
sql=>CREATE INDEX 'ibody' ON 'nucleus_item' ('ibody','ititle','imore')
name=>'ibody'
sql=>
name=>(nucleus_item autoindex 1)

PostgreSQL [Nucleus/SQLite]

2006年3月17日

戯れに、PostgreSQLでもラッパーが作れそうかどうか、調べてみた。一番のポイントは、SQL Query中で使えるユーザ関数が定義できるかどうかである。

NOT NULL の問題 [Nucleus/SQLite]

2006年3月17日

MySQL で "NOT NULL" のカラムに NULL を指定してデータを挿入しようとすると、『MySQL ではエラーを生成するのではなく、カラムを '最適可能値' に設定』するらしい。SQLiteではエラーになる。でもこの MySQL の仕様、バグの温床にならないのかな?

(追記)SQLiteのバージョンによって違うのか、コンパイルオプション或いは、設定によって違うのか、ここのラクーカンのSQLiteではエラーが出なかった(ローカルのコンピューターにインストールしたSQLiteではエラー)。

スピードの問題 [Nucleus/SQLite]

2006年3月15日

MySQL-SQLiteラッパーにおける、文字列エスケープ方法置換ルーチンのスピードについて

次の予定 [Nucleus/SQLite]

2006年3月15日

Nucleus SQLite化計画における次の課題。

1.日付表示の問題(→解消
2.SQL 関数への対応
3.IF, IFNULL, NULLIF, CASE などの条件構文への対応

最優先で実装する機能:
concat (実装終了)
ifnull (実装終了)
IF (実装終了)
INTERVAL(実装終了)
SHOW FIELDS FROM (実装終了)
SHOW KEYS FROM (実装終了)
ALTER TABLE (実装終了)
<<前の記事   後の記事>>