【问题标题】:SQLite insert setting all id's to 0SQLite插入将所有ID设置为0
【发布时间】:2018-02-03 13:20:41
【问题描述】:

我使用以下代码将数据插入 SQLite bd:

public Alimento adicionarAlimentoBD(Alimento alimento) {
    ContentValues values = new ContentValues();

values.put(ID_ALIMENTO_API, alimento.getId_api());
values.put(ID_ALIMENTO_USER, alimento.getId_alimento_user());
values.put(NOME_ALIMENTO, alimento.getNome());
values.put(CALORIAS_ALIMENTO, alimento.getCalorias());
values.put(LIPIDOS_ALIMENTO, alimento.getLipidos());
values.put(CARBOIDRATOS_ALIMENTO, alimento.getCarboidratos());
values.put(PROTEINAS_ALIMENTO, alimento.getProteinas());

long id = this.database.insert(TABLE_NAME_ALIMENTO, null,values);

if (id > -1)
{
    alimento.setId(id);
    return alimento;
}
return null;
}

我希望它继续在 ID 上加 1,但是当我检查我的 ID 时,我得到的都是 0。如果我在“alimento.setId(id);”之后做了一个 alimento.getId id是我想要的...

餐桌食物:

String createAlimentoTable = "CREATE TABLE " + TABLE_NAME_ALIMENTO + "( " +
        ID_ALIMENTO + " INTEGER UNSIGNED PRIMARY KEY," +
        ID_ALIMENTO_API + " TEXT UNSIGNED," +
        ID_ALIMENTO_USER  + " TEXT UNSIGNED," +
        NOME_ALIMENTO + " TEXT UNSIGNED NOT NULL," +
        CALORIAS_ALIMENTO + " INTEGER UNSIGNED NOT NULL," +
        LIPIDOS_ALIMENTO + " INTEGER UNSIGNED NOT NULL," +
        CARBOIDRATOS_ALIMENTO + " INTEGER UNSIGNED NOT NULL," +
        PROTEINAS_ALIMENTO + " INTEGER UNSIGNED NOT NULL )";
database.execSQL(createAlimentoTable);

【问题讨论】:

    标签: android sqlite insert sql-insert


    【解决方案1】:

    我们可以看看您的 Alimento 表定义吗?我怀疑你没有设置你想要增加的字段。如果它只是被定义为一个 int 它将默认为零,除非你提供一些输入。

    例如,如果字段是主键并且您想自动递增,请在列定义中尝试以下操作

    INTEGER PRIMARY KEY AUTOINCREMENT
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-26
      • 1970-01-01
      • 2019-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多