在 table SQLite Android 中阻止更新

Block updates in a table SQLite Android

我想知道是否有办法阻止来自 SQLite android 数据库的 table 更新。我正在开发一个应用程序。某些 table 有两个外键是唯一约束。一旦插入一行,则不应更新该行。它只能在必要时删除。对你有意义吗?我可以用这种方式创建我的 table 吗?你知道更好的编码方法吗?

你可以在 table 上放一个 trigger:

CREATE TRIGGER block_MyTable_update
BEFORE UPDATE ON MyTable
BEGIN
    SELECT RAISE(FAIL, "updates not allowed");
END;

这是我的创建 table 和触发语句:

CREATE TABLE 
IF NOT EXISTS movie (
    _id INTEGER PRIMARY KEY, 
    adult INTEGER NOT NULL, 
    backdrop_path TEXT, 
    belongs_to_collection INTEGER, 
    budget INTEGER,
    homepage TEXT, 
    imdb_id TEXT, 
    original_language TEXT NOT NULL, 
    original_title TEXT NOT NULL, 
    overview TEXT NOT NULL, 
    popularity REAL NOT NULL, 
    poster_path TEXT NOT NULL, 
    release_date TEXT NOT NULL, 
    revenue INTEGER, 
    runtime INTEGER, 
    status TEXT, 
    tagline TEXT, 
    title TEXT NOT NULL, 
    video TEXT NOT NULL, 
    vote_average REAL NOT NULL, 
    vote_count INTEGER NOT NULL);

CREATE TABLE 
IF NOT EXISTS genre (
    _id INTEGER PRIMARY KEY, 
    name TEXT NOT NULL);

CREATE TABLE 
IF NOT EXISTS movie_genre (
    _id INTEGER PRIMARY KEY AUTOINCREMENT, 
    movie_id INTEGER NOT NULL, 
    genre_id INTEGER NOT NULL, 
        FOREIGN KEY ( movie_id) REFERENCES movie(_id) ON UPDATE RESTRICT, 
        FOREIGN KEY ( genre_id) REFERENCES genre(_id) ON UPDATE RESTRICT, 
        CONSTRAINT contrstraint_movie_genre_unique 
            UNIQUE (movie_id, genre_id) ON CONFLICT ROLLBACK);

CREATE TRIGGER 
IF NOT EXISTS triger_movie_genre_update 
    BEFORE 
        UPDATE OF movie_id, genre_id ON movie_genre 
            BEGIN 
                SELECT RAISE(FAIL, "UPDATES NOT ALLOWED") 
            END;

这个触发器工作正常。谢谢!