私はsqlite DBを持っています。PHPで接続するためにSQLite3拡張機能を使用しています。
データベースは、私が今まで請求書に使用していたプログラムのものでした。そのプログラムから sqlite ファイルを取り出し、独自の Web ベースのインターフェイスを作成しました。
既存のデータベースに新しいテーブルを作成した場合を除いて、すべて問題ないようです。
データベースが作成され、新しいエントリを追加でき、lastInsertRowid() が適切な最終挿入 ID を返しました。
ただし、新しいテーブルからエントリを選択し始めたとき、すべての ID (主キー) が空でした。
SQLite データベース ブラウザでデータベースを開いたところ、何かがおかしいです。
おそらく最初に、db スキーマを指定します。
CREATE TABLE IF NOT EXISTS koszty
(
id NUMERIC PRIMARY KEY DESC,
data NUMERIC,
nazwa TEXT,
wartosc_netto NUMERIC UNSIGNED,
podatek NUMERIC UNSIGNED,
typ NUMERIC UNSIGNED,
filename TEXT,
opis TEXT
)
DBを開くと、テーブルのみに対応しているように見える奇妙なテーブルsqlite_autoindex_koszty_1があります。古いテーブルにはありません。
一方、自動インクリメント ID を格納していると思われる sqlite_sequence テーブルもあります。
koszty を除くすべてのテーブルには、ここに名前と AI 値があります。
理由は何ですか?DBを修正する方法。それは私が何か間違ったことをしているのですか(おそらくSqliteのバージョンが違うのでしょうか?Sqlite2 DBでSQLite3を使用していますか?)、それともSQLiteの一貫性がありませんか?