使用:
using var con = new SQLiteConnection(Connection);//Connection数据库地址
CreateIdx(con, 表名称, 一般是主键, 索引名称);
实现:
private void CreateIdx(SQLiteConnection conn, string table, string name, string indexName)
{
try
{
// 检查索引是否存在
string checkIndexQuery = "SELECT name FROM sqlite_master WHERE type='index' AND name=@indexName;";
if (conn.State == ConnectionState.Closed) { conn.Open(); }
using var checkIndexCommand = new SQLiteCommand(checkIndexQuery, conn);
checkIndexCommand.Parameters.AddWithValue("@indexName", indexName);// 添加参数
var indexExists = checkIndexCommand.ExecuteScalar();// 执行查询
// 如果索引不存在,则创建索引
if (indexExists == null)
{
using var createIndexCommand = new SQLiteCommand($"CREATE INDEX {indexName} ON {table}({name});", conn);
createIndexCommand.ExecuteNonQuery();
}
}
catch (Exception ex)
{
LogHelper.GetSingleObj().WriteLog(ex);
}
}
PS:数据库中索引名称是不能重复的,所以先判断索引是否存在,存在则不会创建索引。

被折叠的 条评论
为什么被折叠?



