From b5ad5badb16174b10016472de9c01f2dc2deda10 Mon Sep 17 00:00:00 2001 From: crupest Date: Mon, 5 Dec 2022 16:36:00 +0800 Subject: Develop secret api. v9 --- .../CrupestApi.Commons/Crud/TableInfo.cs | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/TableInfo.cs') diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/TableInfo.cs b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/TableInfo.cs index 660cd4d..38daa3f 100644 --- a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/TableInfo.cs +++ b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/TableInfo.cs @@ -1,3 +1,4 @@ +using System.Text; using Dapper; using Microsoft.Data.Sqlite; @@ -78,7 +79,21 @@ public class TableInfo } } - public string GenerateCreateTableSql() + public string GenerateCreateIndexSql() + { + var sb = new StringBuilder(); + + foreach (var column in ColumnInfos) + { + if (column.IndexType == ColumnIndexType.None) continue; + + sb.Append($"CREATE {(column.IndexType == ColumnIndexType.Unique ? "UNIQUE" : "")} INDEX {TableName}_{column.SqlColumnName}_index ON {TableName} ({column.SqlColumnName});\n"); + } + + return sb.ToString(); + } + + public string GenerateCreateTableSql(bool createIndex = true) { var tableName = TableName; var columnSql = string.Join(",\n", ColumnInfos.Select(c => c.GenerateCreateTableColumnString())); @@ -89,6 +104,11 @@ CREATE TABLE {tableName}( ); "; + if (createIndex) + { + sql += GenerateCreateIndexSql(); + } + return sql; } -- cgit v1.2.3