在UserInput SQL数据库中使用更改整数

时间:2018-10-09 23:09:03

标签: java android sqlite

我对Java还是很陌生,所以请原谅我犯的任何错误。

我目前正在开发一个自动的TODO列表应用程序,该应用程序对用户输入的任务列表进行排序,并对优先级更高的任务进行优先级排序。

用户添加任务后,它将被添加到 SQLite数据库。我想知道如何将整数与每个单独的任务关联。

例如: 假设有一个名为 Priority 的整数,其默认值为 10 。添加的每个任务都以默认值 Priority = 10开头,但会根据用户需求进行更改。

因此,如果一个任务的默认值为 Priority = 10,则 Priority 可以增加11,而同一列表中以 Priority 开始的另一个任务> = 10可能会降低为 Priority =9。我不确定如何使添加到数据库中的每个任务都具有定期更改的单个值。

如果您希望我进一步扩展,我会很高兴,因为我的解释可能会造成混淆。

谢谢!

1 个答案:

答案 0 :(得分:0)

您也许可以使用TRIGGER SQL As Understood By SQLite - CREATE TRIGGER

例如,考虑以下内容:-

DROP TABLE IF EXISTS tasks;
CREATE TABLE IF NOT EXISTS tasks (ID INTEGER PRIMARY KEY, name TEXT, user_reference INTEGER, priority DEFAULT 10);
DROP TRIGGER IF EXISTS set_task_priority;

-- Create the Trigger
CREATE TRIGGER IF NOT EXISTS set_task_priority 
    AFTER INSERT ON tasks
    WHEN ((SELECT count() FROM tasks WHERE user_reference = new.user_reference) > 3)
    BEGIN   
        UPDATE tasks SET priority = new.priority + (SELECT  count() FROM  tasks WHERE user_reference = new.user_reference)
        WHERE ID = new.ID
     ;
    END;

-- Add some data to test the trigger
INSERT INTO tasks (user_reference,name) VALUES 
    (1,'CLEAN'),(1,'TIDY'),(1,'VACUMN'),(1,'WASH'),(1,'THINK'),
    (2,'CLEAN'),(2,'TIDY'),(2,'VACUMN'),(2,'WASH'),
    (3,'CLEAN'),(3,'TIDY'),(3,'VACUMN'),(3,'WASH'),(3,'THINK'),(3,'STUDY'),
    (3,'CLEAN'),(3,'TIDY'),(3,'VACUMN'),(3,'WASH'),(3,'THINK'),(3,'STUDY'),
    (3,'CLEAN'),(3,'TIDY'),(3,'VACUMN'),(3,'WASH'),(3,'THINK'),(3,'STUDY'),
    (3,'CLEAN'),(3,'TIDY'),(3,'VACUMN'),(3,'WASH'),(3,'THINK'),(3,'STUDY')
;
INSERT INTO tasks (user_reference,name) VALUES (3,'SLEEP');
SELECT * FROM tasks;
  • 请注意,这并不是要解决您的问题(如您所说,没有进行解释),而是一个有关TRIGGER如何自动应用更改(在这种情况下,是在插入行之后)的示例。

以下结果为:-

enter image description here

您说

  

我想知道如何将整数与每个人相关联   任务。

上面的每个任务都有自己唯一的整数, rowid ID,或者在上面的ID中作为 rowid 的别名。 Rowid Tables

也许甚至是:-

CREATE TABLE IF NOT EXISTS tasks (ID INTEGER PRIMARY KEY, name TEXT, user_reference INTEGER, priority DEFAULT (ABS(random() % 100)));