2015-10-06 40 views
1

我想保存在sqlite的_ID列的数量,如果其行提前删除如何删除行而不删除其_ID列值?

if(deleting row in sqlite table without delete _ID column if it "_ID" declared as `INTEGER PRIMARY KEY`== true) 
    {How() ;} 
    else{do_not_vote_this_question_down();} . 

的感谢!

+0

保存?哪里?你想实现什么? – pskink

+1

在同一个表中保存_ID的值我的意思是“我不想删除它的值” – Error

+0

所以你想要删除该行吗? – pskink

回答

2

使用this作为如何在SQLite中使用SQL更新的指南,您不应该删除该行,而应将所有其他列的值更新为null

的SQL实现这一目标会是什么样子的下面:用于

UPDATE YourTable SET column1 = null, column2 = null WHERE someCondition = 'value' 

更新,因为行的ID列代表记录的唯一标识符。如果您需要保留此值,那么您正在更新该行,因为按设计删除行将删除对该ID的所有引用。

我问你为什么需要清除数据,但保留ID - 如果你正在寻找标记为“已删除”但为了历史目的而保留的列,应添加一个名为“已删除”的列,该列默认为false ,然后设置为true(如果您确实需要重新访问此行)。

+2

是的历史用途我必须使用删除的列而不是更新 – Error

+1

如何使用删除的列我需要教程链接 – Error

+0

添加一个名为删除的列。创建行时,确保它的值为'false',并修改任何'select'语句以过滤掉删除的行(例如'SELECT * FROM MyTable WHERE deleted = false')。更新时,更新已删除的值(例如'UPDATE MyTable SET deleted = true WHERE myCondition ='value'')。然后,如果您想要检索“已删除”的行,只需将之前的选择更改为筛选删除为真的地方即可。 –