我不是数据库专家,但我必须在我刚刚创建的 Android 新应用程序中处理一个,其中包括 SQLite。我有 2 张桌子,我们称它们为Words和Chars。单词主要记录用户输入的单词,如字典。Chars旨在记录添加到Words表中的单词中包含的任何新单个字符,并计算任何字符包含在Words表中的次数。
在这种情况下,我决定创建一个触发器来更新Chars表,每次在Words中添加/删除/修改一个新单词并且它似乎按预期工作,我现在的问题是,我应该如何迭代新输入的任何字符单词?我发现 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;
谢谢