13

如果你在 Android 上使用 SQLite 的rawQuery()orexecSQL()方法,你应该在什么时候使用分号来结束你的语句?

例如,在本教程中,作者在 create table 语句(通过 execSQL)上使用了分号,但在 select 语句(通过 rawQuery)上没有使用。例如:

创建表语句:

private static final String DATABASE_CREATE = "create table "
      + TABLE_COMMENTS + "(" + COLUMN_ID
      + " integer primary key autoincrement, " + COLUMN_COMMENT
      + " text not null);";
database.execSQL(DATABASE_CREATE);

选择语句:

Cursor cursor = getReadableDatabase().
  rawQuery("select * from todo where _id = ?", new String[] { id });

是否使用该execSQL()方法的语句末尾需要分号,但使用该rawQuery()方法的语句不需要?

4

2 回答 2

17

SQLite 语句以分号 ( ;) 结束。如果指定了一个,则表示它是命令的结尾,并且该分号后面可以有更多命令。如果未指定分号,则将整个字符串视为命令。

在这种情况下,CREATE语句中的分号无关紧要,因为它后面没有任何内容。

于 2012-11-02T20:30:51.290 回答
3

我从来没有在两者中使用过分号并且它有效

于 2012-11-02T20:31:37.337 回答