什麼是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