私はデータベースの専門家ではありませんが、SQLiteを含むAndroid用の新しいアプリでデータベースを処理する必要があります。2つのテーブルがあります。それらをWordsとCharsと呼びましょう。単語は主に、辞書のようにユーザーが入力した単語を登録します。Charsは、 Wordsテーブルに追加された単語に含まれる新しい単一の文字を登録し、任意の文字がWordsテーブルに含まれる回数をカウントすることを目的としています。
このシナリオでは、 Wordsで新しい単語が追加/削除/変更されるたびに、 Charsテーブルを更新するトリガーを作成することにしました。これは期待どおりに機能するようです。私の質問は、新しく入力された文字の文字をどのように反復するかです。語?SQLにFOR..IN .. LOOPステートメントがあることがわかりましたが、私が理解できる限り、SQLiteでは使用できません。なにか提案を?
これは、データベースを最初から生成するために作成したスクリプトですが、文字が表示される回数を登録せず、登録するだけなので、完全ではありません。さらに、トリガー定義の「FOR」キーワードについて不平を言っています。
CREATE TABLE Words (id_word INTEGER PRIMARY KEY AUTOINCREMENT, meaning TEXT NOT NULL);
CREATE TABLE Chars (id_char INTEGER PRIMARY KEY AUTOINCREMENT, char TEXT UNIQUE);
CREATE TRIGGER NewWord BEFORE INSERT ON Words BEGIN
FOR i IN 1..length(NEW.meaning) LOOP
INSERT INTO Chars (char) VALUES (SUBSTR(NEW.meaning,i,1));
END LOOP;
END;
ありがとう