sqlite dapper 数据量过大,增加索引,写成公用方法。

使用:

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:数据库中索引名称是不能重复的,所以先判断索引是否存在,存在则不会创建索引。
               

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值