2

非常に奇妙な sqlite 構文エラーがあります。

const char *statement = "DELETE FROM quotes t1 WHERE t1.id=127";
int returnCode = sqlite3_exec(database, statement, NULL, NULL, &errorMsg);
if (returnCode!=SQLITE_OK) 
{
    fprintf(stderr, "Error: %s", errorMsg);
    sqlite3_free(errorMsg);
}

 Error: near "t1": syntax error

しかし、このコードはうまく機能します

const char *statement = "DELETE FROM quotes WHERE id=127";
int returnCode = sqlite3_exec(database, statement, NULL, NULL, &errorMsg);
4

1 に答える 1

5

SQLiteはdeleteステートメントでエイリアスを許可しません。

許可される構文については、マニュアルを参照してください。


削除-stmt

ここに画像の説明を入力してください

修飾テーブル名

ここに画像の説明を入力してください

于 2012-07-22T15:37:04.487 に答える