mysql 通过CodeFirst.InitTables 涉及到索引的添加,2个表的索引名相同时添加索引失败 返回
SqlSugar
沟通中
7
107
ux 发布于4天前
悬赏:0 飞吻
MySqlDbMaintenance.IsAnyIndexSql 中的sql 脚本:
SELECT count(*) FROM information_schema.statistics WHERE index_name = '{0}' and index_schema = '{1}'
建议增加table_name作为条件
热忱回答(7)
-
fate sta VIP04天前
肯定不能相同
0 回复 -
fate sta VIP04天前
索引名肯定要加上表名
0 回复 -
ux VIP04天前
事实上,mysql里不同的表,允许index_name相同。虽然我们习惯命名:{表名}_{字段名} 作为index_name,但也不排除有其它原因不这么命名。
0 回复 -
fate sta VIP04天前
@ux:sqlsugar是多库为规范设计,支持占位符
//占位符 普通表:{table} 分表:{split_table} 数据库{db}
//请升级到 5.0.2.3preivew04
//使用 {db} 进行占位符替换,小写不要有空格
[SugarIndex(
"{db}index_codetable1_name"
,nameof(CodeFirstTable1.Name),OrderByType.Asc)]
//普通表名占位符
[SugarIndex(
"index_{table}_name"
,nameof(CodeFirstTable1.Name),OrderByType.Asc)]
,
0 回复 -
ux VIP04天前
我们这边出现索引重名的情况,并非有意而为之,是因为两个实体之间有继承关系,而SugarIndex这个特性默认是可被继承的,所以,在父实体类上标记的索引特性,被子实体类继承。
0 回复 -
fate sta VIP04天前
@ux:继承不影响有占位符
0 回复 -
ux VIP01天前
@fate sta:好的,感谢解答。
0 回复