mysqlUtil.lua 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. --[[
  2. Descripttion:
  3. version:
  4. Author: Neo,Huang
  5. Date: 2022-08-24 20:08:31
  6. LastEditors: Neo,Huang
  7. LastEditTime: 2022-08-24 20:09:12
  8. --]]
  9. local lib_game_mysql = require("lib_game_mysql")
  10. local constDb = require("db")
  11. local sqlUtil = require("utils.sqlUtil")
  12. local root = {}
  13. function root:query(sql)
  14. return lib_game_mysql:query(sql)
  15. end
  16. -- 插入数据
  17. function root:insert(sql)
  18. if is_empty(sql) then
  19. return false
  20. end
  21. local ret = lib_game_mysql:query(sql)
  22. if ret.errno and ret.errno > 0 then
  23. log.error("数据库[插入数据]错误! sql[%s] ret[%s]", tostring(sql), tostring(ret))
  24. return false
  25. end
  26. return true, ret
  27. end
  28. -- 替换数据
  29. function root:replace(sql)
  30. if is_empty(sql) then
  31. return false
  32. end
  33. local ret = lib_game_mysql:query(sql)
  34. if ret.errno and ret.errno > 0 then
  35. log.error("数据库[替换数据]错误! sql[%s] ret[%s]", tostring(sql), tostring(ret))
  36. return false
  37. end
  38. return true, ret
  39. end
  40. -- 查询数据
  41. function root:select(sql)
  42. if is_empty(sql) then
  43. return false
  44. end
  45. local ret = lib_game_mysql:query(sql)
  46. if ret.errno and ret.errno > 0 then
  47. log.error("数据库[查询数据]错误! sql[%s] ret[%s]", tostring(sql), tostring(ret))
  48. return false
  49. end
  50. return true, ret
  51. end
  52. -- 更新数据
  53. function root:update(sql)
  54. if is_empty(sql) then
  55. return false
  56. end
  57. local ret = lib_game_mysql:query(sql)
  58. if ret.errno and ret.errno > 0 then
  59. log.error("数据库[更新数据]错误! sql[%s] ret[%s]", tostring(sql), tostring(ret))
  60. return false
  61. end
  62. return true, ret
  63. end
  64. -- 删除数据
  65. function root:delete(sql)
  66. if is_empty(sql) then
  67. return false
  68. end
  69. local ret = lib_game_mysql:query(sql)
  70. if ret.errno and ret.errno > 0 then
  71. log.error("数据库[删除数据]错误! sql[%s] ret[%s]", tostring(sql), tostring(ret))
  72. return false
  73. end
  74. return true, ret
  75. end
  76. local function l_add_mysql_column(columnName, module)
  77. local sql = sqlUtil.alter_table_add_column(module.tabName, columnName, module.columnNameOptions[columnName])
  78. local result = lib_game_mysql:query(sql)
  79. if result.errno then
  80. log.error("addColumnName fatal err, sql:%s err[%s]", sql, result.err)
  81. end
  82. end
  83. -- 初始模块
  84. function root:init_module_table(module)
  85. if not module.isSaveDB or is_empty(module.columnNameOptions) then
  86. return
  87. end
  88. -- create table
  89. local sql =
  90. string.format(
  91. "SELECT table_name FROM information_schema.TABLES WHERE TABLE_SCHEMA='%s' and table_name ='%s'",
  92. constDb["mysql"]["game"]["database"],
  93. module.tabName
  94. )
  95. local result = lib_game_mysql:query(sql)
  96. if result == nil or #result == 0 then
  97. sql = sqlUtil.create_table(module.tabName, module.columnNameOptions, module.keyName, module.secondaryKeys)
  98. local ret = lib_game_mysql:query(sql)
  99. if ret.errno and ret.errno > 0 then
  100. log.error("数据库[初始模块]错误! sql[%s] ret[%s]", tostring(sql), tostring(ret))
  101. return false
  102. end
  103. return
  104. end
  105. -- get table Options
  106. local tableColumns = {}
  107. sql = sqlUtil.get_able_column_options(constDb["mysql"]["game"]["database"], module.tabName)
  108. result = lib_game_mysql:query(sql)
  109. if result then
  110. for i, v in pairs(result) do
  111. assert(v["COLUMN_NAME"], cjson_encode(v))
  112. local column_name = v["COLUMN_NAME"]
  113. tableColumns[column_name] = true
  114. end
  115. end
  116. -- add column
  117. for key, v in pairs(module.columnNameOptions) do
  118. if not tableColumns[key] then
  119. l_add_mysql_column(key, module)
  120. end
  121. end
  122. end
  123. return root