123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- --[[
- Descripttion:
- version:
- Author: Neo,Huang
- Date: 2022-08-24 20:08:31
- LastEditors: Neo,Huang
- LastEditTime: 2022-08-24 20:09:12
- --]]
- local lib_game_mysql = require("lib_game_mysql")
- local constDb = require("db")
- local sqlUtil = require("utils.sqlUtil")
- local root = {}
- function root:query(sql)
- return lib_game_mysql:query(sql)
- end
- -- 插入数据
- function root:insert(sql)
- if is_empty(sql) then
- return false
- end
- local ret = lib_game_mysql:query(sql)
- if ret.errno and ret.errno > 0 then
- log.error("数据库[插入数据]错误! sql[%s] ret[%s]", tostring(sql), tostring(ret))
- return false
- end
- return true, ret
- end
- -- 替换数据
- function root:replace(sql)
- if is_empty(sql) then
- return false
- end
- local ret = lib_game_mysql:query(sql)
- if ret.errno and ret.errno > 0 then
- log.error("数据库[替换数据]错误! sql[%s] ret[%s]", tostring(sql), tostring(ret))
- return false
- end
- return true, ret
- end
- -- 查询数据
- function root:select(sql)
- if is_empty(sql) then
- return false
- end
- local ret = lib_game_mysql:query(sql)
- if ret.errno and ret.errno > 0 then
- log.error("数据库[查询数据]错误! sql[%s] ret[%s]", tostring(sql), tostring(ret))
- return false
- end
- return true, ret
- end
- -- 更新数据
- function root:update(sql)
- if is_empty(sql) then
- return false
- end
- local ret = lib_game_mysql:query(sql)
- if ret.errno and ret.errno > 0 then
- log.error("数据库[更新数据]错误! sql[%s] ret[%s]", tostring(sql), tostring(ret))
- return false
- end
- return true, ret
- end
- -- 删除数据
- function root:delete(sql)
- if is_empty(sql) then
- return false
- end
- local ret = lib_game_mysql:query(sql)
- if ret.errno and ret.errno > 0 then
- log.error("数据库[删除数据]错误! sql[%s] ret[%s]", tostring(sql), tostring(ret))
- return false
- end
- return true, ret
- end
- local function l_add_mysql_column(columnName, module)
- local sql = sqlUtil.alter_table_add_column(module.tabName, columnName, module.columnNameOptions[columnName])
- local result = lib_game_mysql:query(sql)
- if result.errno then
- log.error("addColumnName fatal err, sql:%s err[%s]", sql, result.err)
- end
- end
- -- 初始模块
- function root:init_module_table(module)
- if not module.isSaveDB or is_empty(module.columnNameOptions) then
- return
- end
- -- create table
- local sql =
- string.format(
- "SELECT table_name FROM information_schema.TABLES WHERE TABLE_SCHEMA='%s' and table_name ='%s'",
- constDb["mysql"]["game"]["database"],
- module.tabName
- )
- local result = lib_game_mysql:query(sql)
- if result == nil or #result == 0 then
- sql = sqlUtil.create_table(module.tabName, module.columnNameOptions, module.keyName, module.secondaryKeys)
- local ret = lib_game_mysql:query(sql)
- if ret.errno and ret.errno > 0 then
- log.error("数据库[初始模块]错误! sql[%s] ret[%s]", tostring(sql), tostring(ret))
- return false
- end
- return
- end
- -- get table Options
- local tableColumns = {}
- sql = sqlUtil.get_able_column_options(constDb["mysql"]["game"]["database"], module.tabName)
- result = lib_game_mysql:query(sql)
- if result then
- for i, v in pairs(result) do
- assert(v["COLUMN_NAME"], cjson_encode(v))
- local column_name = v["COLUMN_NAME"]
- tableColumns[column_name] = true
- end
- end
- -- add column
- for key, v in pairs(module.columnNameOptions) do
- if not tableColumns[key] then
- l_add_mysql_column(key, module)
- end
- end
- end
- return root
|