什么是SQLite中的create table语句意味着返回?SQLite - 创建表(如果不存在)
我观察到create table if not exists
返回0
和1
当表确实存在。返回值是表格是否存在的可靠指示?如果该表已存在,我希望该语句返回0
,如果不存在则返回1
,类似于insert
语句。
什么是SQLite中的create table语句意味着返回?SQLite - 创建表(如果不存在)
我观察到create table if not exists
返回0
和1
当表确实存在。返回值是表格是否存在的可靠指示?如果该表已存在,我希望该语句返回0
,如果不存在则返回1
,类似于insert
语句。
if not exists
语法使命令成功,即使表已经存在。它只是没有做任何事情。
我不确定你指的是“返回1”,除非你在谈论命令行客户端。在这种情况下,如果您只从create
语句中删除if not exists
,那么如果该表存在,该命令将返回1(表示失败)。
使用SQLite-NET库,该命令使用ExecuteNonQuery执行,因此它使用SQLite3.Changes(connectionHandle)查询sqlite中的更改。 – Jamie
Changes
返回受影响的行数。 对于CREATE TABLE
语句,此值无意义。
有没有简单的方法来确定CREATE TABLE IF NOT EXISTS
语句是否创建或不。 你应该事先检查PRAGMA table_info。
所以你用这种方法来确定表是否存在? – amphetamachine
在此库(https://github.com/praeclarum/sqlite-net)中,如果它尝试迁移表(如果不存在,则使用create table)但是,检查0有时会失败,因为它会返回1 - 即使该表在执行语句之前已经存在:/ – Jamie