当前位置:首页 > 数据库 > SQlite

android – 需要在SQLite中更新列的值

我需要为列中的所有行否定列的值.我试图使用以下查询,但它不更新任何行:

sqliteDatabase.rawQuery("UPDATE "+ SQL_TABLE_NAME + " SET "+ COL_1 +" = " + "-"+COL_1  , null);

其中COL-1 = col_1,表中为整数类型.

–Twinks

解决方法:

您可以将列乘以-1

 Update SQL_TABLE_NAME Set COL_1 = COL_1 * -1

请注意,您的查询格式适合我;

 Update tPerson Set Age = -Age

如果我是你,我会创建一个字符串并将您的查询设置为,以便您可以检查它是否按预期设置:

 String sql = "UPDATE "+ SQL_TABLE_NAME + " SET "+ COL_1 +" = " + "-" + COL_1;
 sqliteDatabase.rawQuery(sql, null); //breakpoint here, and check sql var

您的SQL_TABLE_NAME中是否有空格?尝试将其包装在方括号中,也可能与列名相同.

编辑:

我建议将主键更新为否定,但要完成此操作,您可以执行以下操作:

 SET IDENTITY_INSERT Person ON

 Insert Into Person ([Id], [Name], [Age])
 Select -[Id], [Name], [Age] From Person

 SET IDENTITY_INSERT Person OFF

(但这会复制你的表,你可能想把数据推到临时表中) – 不过我认为这是一个可怕的解决方案.我试着找到一种方法来重构你的表模式,因此它不是主键.


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!