Ich habe eine Tabelle mit dem folgenden Schema:In Android Sqlite ist ROWID wie Primärschlüssel?
public static final String PRIMARY_KEY = "_id";
public static final String TASK_NAME = "name";
public static final String TASK_DESCRIPTION = "description";
public static final String IS_TASK_COMPLETED = "is_completed";
public static final String IS_TASK_DELETED = "is_deleted";
public static final String TASK_START_DATE = "start_date";
public static final String TASK_START_TIME = "start_time";
public static final String ESTIMATED_TASK_END_DATE = "end_date";
public static final String TIMESTAMP = "timestamp";
in einem Fragment ich bin eine Zeile in der Tabelle unter Verwendung des insert()
Verfahren eingesetzt wird. Ich weiß, dass dies die rowId
der eingefügten Zeile kehrt aber in this Thread I gelesen, dass
Wenn eine Tabelle eine Spalte vom Typ INTEGER PRIMARY KEY enthält, so dass Spalte ein Alias für die ROWID wird. Sie können dann auf die ROWID mit einem von vier verschiedenen Namen zugreifen, den ursprünglichen drei oben beschriebenen Namen oder dem Namen der Spalte INTEGER PRIMARY KEY. All diese Namen sind Aliase für einander und funktionieren in jedem Kontext.
So wird die zurückgegebene rowId gleich wie der Primärschlüssel sein. Was aber, wenn eine Zeile gelöscht wird und in diesem Fall eine andere Zeile eingefügt wird, wird die rowId
dieselbe sein wie die primary key value "id"
?
Ihre Frage ist unklar. Fragen Sie, was mit der 'rowId' passiert, wenn Sie einen Datensatz löschen und dann ein' INSERT' machen? –
Ja. Ich meine, wird der Wert von rowId und der Primärschlüssel immer gleich sein? – Paras
Noch nicht klar ... aber wenn Sie die Spalte Integer und Primärschlüssel machen, dann sollte 'rowId' synonym mit dem Primärschlüssel sein. –