SET @TABLE_NAME = 'FC_INV';
SELECT
CONCAT(
'using Dapper;\n'
,'using System;\n'
,'using System.Data;\n'
,'using static SmartInterface.Repository.DB.DBModel.Common;\n'
,'\n'
,'namespace SmartInterface.Repository.DB.DBModel.Tables\n'
,'{\n'
,'public class ', @TABLE_NAME, ' : IModel'
,'{\n'
,(
SELECT
GROUP_CONCAT(
CONCAT('public ',
CASE DATA_TYPE
WHEN 'varchar' THEN 'string'
WHEN 'timestamp' THEN 'DateTime?'
WHEN 'datetime' THEN 'DateTime?'
WHEN 'float' THEN 'double?'
WHEN 'longtext' THEN 'string'
WHEN 'tinyint' THEN 'int?'
WHEN 'smallint' THEN 'int?'
WHEN 'int' THEN 'int?'
WHEN 'double' THEN 'double?'
ELSE DATA_TYPE END ,
' ' ,
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(COLUMN_NAME,'-','_'),'&','_AND_'),'did','id'),'facility_id','id'),'localtime','dblocaltime') ,
' {get;set;}'
)
SEPARATOR '\n'
)
FROM INFORMATION_SCHEMA.`COLUMNS`
WHERE TABLE_SCHEMA='renew_energy'
AND TABLE_NAME = @TABLE_NAME
)
,'\n\n'
#################################################################################################################
############# Method
#################################################################################################################
,'public DBProcessParams GenerateParameters<T>(T model) where T : class\n'
,'{\n'
,@TABLE_NAME,' table = model as ',@TABLE_NAME,';\n'
,'DBProcessParams dbParams = new DBProcessParams();\n\n'
,'var insertParams = new DynamicParameters();\n'
,'var updateParams = new DynamicParameters();\n\n'
,(
SELECT
GROUP_CONCAT(
CONCAT(
'insertParams.Add(\"'
,'@',REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(COLUMN_NAME,'-','_'),'&','_AND_'),'localtime','dblocaltime'),'did','id'),'did','id'),'facility_id','id')
,'\", '
,'table.'
,REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(COLUMN_NAME,'-','_'),'&','_AND_'),'localtime','dblocaltime'),'did','id'),'facility_id','id')
,', '
,'DbType.'
,CASE DATA_TYPE
WHEN 'varchar' THEN 'String'
WHEN 'timestamp' THEN 'DateTime'
WHEN 'datetime' THEN 'DateTime'
WHEN 'float' THEN 'Double'
WHEN 'longtext' THEN 'String'
WHEN 'tinyint' THEN 'Int32'
WHEN 'smallint' THEN 'Int32'
WHEN 'int' THEN 'Int32'
ELSE DATA_TYPE END
,', ParameterDirection.Input'
,', 200);'
)
SEPARATOR '\n'
)
FROM INFORMATION_SCHEMA.`COLUMNS`
WHERE TABLE_SCHEMA = 'renew_energy'
AND TABLE_NAME = @TABLE_NAME
AND COLUMN_NAME NOT IN ('missed_yn', 'send_date', 'send_yn')
)
,'\n\n'
,(
SELECT
GROUP_CONCAT(
CONCAT(
'updateParams.Add(\"'
,'@',REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(COLUMN_NAME,'-','_'),'&','_AND_'),'localtime','dblocaltime'),'did','id'),'did','id'),'facility_id','id')
,'\", '
,'table.'
,REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(COLUMN_NAME,'-','_'),'&','_AND_'),'localtime','dblocaltime'),'did','id'),'facility_id','id')
,', '
,'DbType.'
,CASE DATA_TYPE
WHEN 'varchar' THEN 'String'
WHEN 'timestamp' THEN 'DateTime'
WHEN 'datetime' THEN 'DateTime'
WHEN 'float' THEN 'Double'
WHEN 'longtext' THEN 'String'
WHEN 'tinyint' THEN 'Int32'
WHEN 'smallint' THEN 'Int32'
WHEN 'int' THEN 'Int32'
ELSE DATA_TYPE END
,', ParameterDirection.Input'
,', 200);'
)
SEPARATOR '\n'
)
FROM INFORMATION_SCHEMA.`COLUMNS`
WHERE TABLE_SCHEMA = 'renew_energy'
AND TABLE_NAME = @TABLE_NAME
AND COLUMN_NAME IN ('timestamp', 'facility_id', 'did')
)
,'\n\n'
,'dbParams.InsertParams = insertParams;'
,'\n'
,'dbParams.UpdateParams = updateParams;'
,'\n\nreturn dbParams;'
,'\n}'
,'\n'
,'string IModel.Select() => Select();'
,'\n'
,'string IModel.Insert() => Insert();'
,'\n'
,'string IModel.Update() => Update();'
,'\n'
#################################################################################################################
############# Select Query
#################################################################################################################
,'\n\npublic static string Select()\n'
,'{\n'
,'string query = $@\"\n'
,'\t\t\t\t\t\t\t'
'SELECT ',
(
SELECT
GROUP_CONCAT(
CONCAT(
'\n\t\t\t\t\t\t\t\t',
'`',COLUMN_NAME,'`',
CASE COLUMN_NAME
WHEN 'did' THEN ' id'
WHEN 'facility_id' THEN ' id'
ELSE CONCAT(' `{nameof(',REPLACE(REPLACE(REPLACE(COLUMN_NAME,'-','_'),'&','_AND_'),'localtime','dblocaltime'),')}`')
END
)
SEPARATOR ',')
FROM INFORMATION_SCHEMA.`COLUMNS`
WHERE TABLE_SCHEMA='renew_energy'
AND TABLE_NAME = @TABLE_NAME
),
'\n\t\t\t\t\t\t\t FROM ',
@TABLE_NAME,
' \n\t\t\t\t\t\t\tWHERE IFNULL(send_yn,''N'') = ''N'' ',
'\n\t\t\t\t\t\t\tORDER BY timestamp'
,'\n\t\t\t\t\t\t\t\";'
,'\nreturn query;'
,'\n}'
#################################################################################################################
############# Update Query
#################################################################################################################
,'\n\npublic static string Update()\n'
,'{\n'
,'string query = $@\"\n'
,'\t\t\t\t\t\t\t'
,'UPDATE '
,@TABLE_NAME
,'\n\t\t\t\t\t\t\t'
,' SET SEND_YN = ''#SEND_YN#'''
,'\n\t\t\t\t\t\t\t\t'
,',SEND_DATE = NOW() '
,'\n\t\t\t\t\t\t\t'
,'WHERE '
,(
SELECT
COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @TABLE_NAME
AND TABLE_SCHEMA = 'renew_energy'
AND COLUMN_NAME IN ('facility_id','did')
)
,' = @id '
,'\n\t\t\t\t\t\t\t'
,'AND timestamp = @timestamp'
,'\n\t\t\t\t\t\t\t'
,'\";'
,'\nreturn query;'
,'\n}'
#################################################################################################################
############# Insert Query
#################################################################################################################
,'\n\npublic static string Insert()'
,'\n{'
,'\nstring query = $@\"\n'
,'\t\t\t\t\t\t\t'
,'INSERT INTO '
,@TABLE_NAME
,'\n\t\t\t\t\t\t\t'
,'(\n'
,(
SELECT
GROUP_CONCAT(
CONCAT(
'\t\t\t\t\t\t\t\t','`',COLUMN_NAME,'`'
)
SEPARATOR ',\n ')
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'renew_energy'
AND TABLE_NAME = @TABLE_NAME
AND COLUMN_NAME NOT IN ('missed_yn', 'send_date', 'send_yn')
)
,'\n\t\t\t\t\t\t\t'
,')\n'
,'\t\t\t\t\t\t\t'
,'VALUES '
,'\n\t\t\t\t\t\t\t'
,'(\n'
,(
SELECT
GROUP_CONCAT(
CONCAT(
'\t\t\t\t\t\t\t\t@',REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(COLUMN_NAME,'-','_'),'&','_AND_'),'localtime','dblocaltime'),'did','id'),'did','id'),'facility_id','id')
)
SEPARATOR ',\n ')
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'renew_energy'
AND TABLE_NAME = @TABLE_NAME
AND COLUMN_NAME NOT IN ('missed_yn', 'send_date', 'send_yn')
)
,'\n'
,'\t\t\t\t\t\t\t)'
,'\n\t\t\t\t\t\t\t\";'
,'\nreturn query;'
,'\n}'
,'\n}'
,'\n}'
);
'DB > MariaDB' 카테고리의 다른 글
MariaDB 데이터 파일 저장 경로 변경 (0) | 2022.04.01 |
---|---|
MariaDB 모든 테이블 데이터 삭제 (0) | 2022.03.24 |
MariaDB 모든 테이블 랜덤 값 insert (0) | 2022.03.24 |