相关疑难解决方法(0)

检查SQLite中是否存在列

我需要检查列是否存在,如果不存在则添加它.根据我的研究,看起来sqlite不支持IF语句,而应该使用case语句.

这是我到目前为止:

SELECT CASE WHEN exists(select * from qaqc.columns where Name = "arg" and Object_ID = Object_ID("QAQC_Tasks")) = 0 THEN ALTER TABLE QAQC_Tasks ADD arg INT DEFAULT(0);
Run Code Online (Sandbox Code Playgroud)

但我收到错误:"ALTER"附近:语法错误.

有任何想法吗?

sqlite

34
推荐指数
7
解决办法
6万
查看次数

SQLite.NET检查表中是否存在列

我创建了以下方法,可在已存在的SQLite表中添加一列

public async void AddColumnMyNewColumn()
{
    SQLiteAsyncConnection conn = new SQLiteAsyncConnection(path);
    await conn.ExecuteAsync("ALTER TABLE MyTable ADD COLUMN MyNewColumn bit DEFAULT 'False';");
}
Run Code Online (Sandbox Code Playgroud)

它在MyTable中创建一个新列MyNewColumn。

下次调用AddColumnMyNewColumn方法时,它将引发错误。

如何检查此列是否已创建?

我已经检查过这个这个了,但是我不能将这些东西放在一起得到这样的东西。

public async void AddColumnMyNewColumn()
{
    SQLiteAsyncConnection conn = new SQLiteAsyncConnection(path);
    bool columnExists;

    //Check if column exists & set columnExists accordingly

    if(!columnExists)
        await conn.ExecuteAsync("ALTER TABLE MyTable ADD COLUMN MyNewColumn bit DEFAULT 'False';");
}
Run Code Online (Sandbox Code Playgroud)

c# sqlite windows-runtime sqlite.net

0
推荐指数
2
解决办法
2848
查看次数

标签 统计

sqlite ×2

c# ×1

sqlite.net ×1

windows-runtime ×1