エントリー

SQLite3でオートインクリメント

細かい部分でつまづきつつ、PHP Labo のプログラムを書き換え中。

SQLite2でオートインクリメントな列を作りたい場合、テーブル作成時に

no INTEGER UNSIGNED NOT NULL PRIMARY KEY

としていたのだけど、SQLite3ではデータの挿入ができませんでした…。

address.no may not be NULL

とか言われてしまいます。(address はテーブル名。)色々試したところ、

no INTEGER PRIMARY KEY

ならSQLite2でもSQLite3でも大丈夫だった。調べてみると、NOT NULL を指定しているとバージョンによって微妙に挙動が異なるらしい。うーむ。

ちなみにSQLite3からは AUTOINCREMENT というキーワードが追加されているらしいけど、SQLite2では動作しないので上の方法で行くとします。

ページ移動

ユーティリティ

カテゴリー

検索

エントリー検索フォーム
キーワード

過去ログ

過去ログ表示フォーム
キーワード

Feed