0100class.mql 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. CREATE DB IF NOT EXISTS msqldb (
  2. -- 数据库驱动类型,单引号或双引号标记的字符串,
  3. -- 目前支持的类型有 sqlite|mysql ,新的类型需要更新 odbserver
  4. DRIVER : 'sqlite',
  5. -- 数据源定义,单引号或双引号标记的字符串,
  6. -- 不同数据库类型格式不一样,参考相关数据库驱动文档
  7. SOURCE : "file:data/testdb?cache=shared",
  8. -- 附加选项,JSON对象,
  9. -- 通过 odbserver 支持的,不同数据库类型支持的选项可能不同
  10. OPTION : {
  11. "makedir": "auto" -- sqlite 支持,自动创建数据库文件所在目录
  12. }
  13. -- mysql示例
  14. -- driver : "mysql",
  15. -- source : "user:password@tcp(127.0.0.1:3306)/dbname"
  16. )
  17. ;
  18. create class if not exists /mdb () with namespace='mdb'
  19. ;
  20. create class if not exists /mdb/dba1 (
  21. rdb bucket {
  22. -- 全表映射
  23. "type" : "msqldb",
  24. -- 指定表名
  25. "table" : "T__matrix__test___422YX2FPSXSLVDA9"
  26. },
  27. ) with nickname='dba1'
  28. ;
  29. create class if not exists /mdb/dba2 (
  30. xvarchar varchar,
  31. xint int,
  32. xbigint bigint,
  33. xdouble double,
  34. xdate date,
  35. xrdb bucket {
  36. -- 条件映射
  37. "type" : "msqldb",
  38. -- 结构化指定表、字段、条件
  39. -- TODO 后期可解析 sql 语句,方便应用开发
  40. "table" : "T__matrix__test___422YX2FPSXSLVDA9",
  41. "fields": ["字符串", "大整数", "整数", "浮点", {"name":"双浮点","asname":"vdouble"}],
  42. "conds" : {
  43. "and": [{ -- 多条件组合
  44. "like": ["_tokens","%/mtest/%"]},{ -- 常量条件
  45. "or": [{
  46. "=": ["name", {"field":"xvarchar"}]},{ -- 变量条件
  47. "=": ["字符串", {"field":"xvarchar"}]},{
  48. "between": ["strftime('%Y-%m-%d',cast(day as integer)/1000.0+28800,'unixepoch')", "2026-01-01", {"field":"xdate"}]}]}]} -- sql函数支持
  49. -- TODO "groupby","having","orderby"
  50. } "rdb test",
  51. xmap map<varchar, varchar>,
  52. xlist list<varchar>,
  53. xset set<varchar>,
  54. indexes(xvarchar, xint, xbigint, xdouble, xmap, xlist, xset),
  55. keys(xvarchar)
  56. ) with nickname='dba2'
  57. ;