根据行来检测列的类型
2012-7-24 10:54:46
收藏:0
阅读:202
评论:1
在我的 Lua 应用程序中,我正在尝试创建一个设置特定用户数据的实用函数。它使用以下格式:setUserData(int UID, string COLUMN_NAME, mixed ROWVALUE)它将数据保存在 MySQL 数据库中。
我不确定如何创建列(如果不存在)并检测值的类型(TEXT、tinyint、VARCHAR 等),以设置列。
是否将列始终设置为 TEXT 类型会更容易、更好?如果不是,我该如何检测并创建?
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
这在很大程度上取决于你的
setUserData函数的约定。如果你期望用户始终为给定的列名提供相同的值类型,那么你可能总是可以从中派生出该列类型的某些方面,特别是它是否由字符、整数或浮点数组成。然后,你可以选择为给定数据选择 最大大小 的列类型,即LONGTEXT、DOUBLE或BIGINT。这样做可能需要比在数据库中严格必需的内存更多,但如果你实际上对传递给该函数的数据什么都不知道,那么你无法排除在同一列中所有的空间可能都被其他值使用的可能性。另一种方法是始终从给定族中选择 最小 的数据类型。当把新数据插入 现有 列时,你必须留意截断警告,并在看到这些警告时相应地扩大列类型。
对于许多应用程序来说,把一切存储为字符将是最简单的解决方案。但是,
LONGTEXT比像TINYINT这样的简单列类型要复杂得多,所以你将不得不在内存需求和性能方面付出代价。VARCHAR不是那么糟糕,因此如果你按照上一段建议的自动扩大,惩罚会较轻。独立于 LUA 中的本地类型,将所有东西存储为文本时,行为也可能略有不同:当你将一个数字输入为
'01234'时,它将与'1234'不相等。这是否理想取决于你的应用程序,并且可能是是否将数据存储为文本的一个良好指示。只要 LUA 端始终使用相同的数据类型,那么不应该有任何区别,因为每次相同的数据类型都会以相同的方式转换为文本。