是否可以自动增量非主键的列

时间:2013-10-26 09:48:24

标签: android database primary-key android-sqlite auto-increment

我有两列Indexpath。由于我的代码的当前逻辑,我希望路径为primary密钥,索引为auto Increment。这可能吗?

2 个答案:

答案 0 :(得分:1)

GUID值在表甚至数据库中是唯一的,因此,使auto_increment列为主索引并为GUID创建UNIQUE索引。我认为这就是你所需要的。

答案 1 :(得分:0)

如果我说得对,你最终会希望path会自动递增, 我已经在新值上使用了触发器,在表创建过程中运行这两个命令

        String sqlTableCreation = String.format("create table %s (%s INTEGER primary key, " +
            "%s integer DEFAULT 0)",
            Contract.TABLE,
            Contract.INDEX,
            Contract.PATH
            );

    String sqlPathAutoIncrement = 
            String.format("CREATE TRIGGER pk AFTER INSERT ON %1$s" +
                    " BEGIN" +
                    "     UPDATE  %1$s" +
                    "     SET     %2$s = 1+ (SELECT MAX(%2$s) FROM %1$s) " + 
                    "     WHERE   ROWID = new.ROWID;" + 
                    " END;" , 
                    Contract.TABLE,
                    Contract.PATH,
                    Contract.INDEX);