mysql - 从代码中检索表名和列名

标签 mysql database vb.net sqldatatypes tablecolumn

我需要检索表名称以及要添加到表中的所有后续列以手动执行此操作,这是从我获得的代码中给出的。我可以很容易地收集所有表名(我相信),但我无法准确地看到我正在寻找的列。我需要帮助了解列数据和数据类型(旧的 mysql 数据库与表丢失了)

useroptions.vb :http://pastebin.com/84SxTzfz
useroptionscommon.vb :http://pastebin.com/2rxf3e2y
Connections.vb :http://pastebin.com/CpWqt2m8
userpersistence.vb :http://pastebin.com/TaAex24Q
streamprocessor.vb :http://pastebin.com/Tazr1s8p
serverpersistance.vb :http://pastebin.com/qvnCN2PY
frontpagehub.vb :http://pastebin.com/FYyLH4qP

即使有人可以告诉我要寻找什么来找出我需要添加的表、列和列的数据类型。我将不胜感激。 我花了几天时间尝试重建数据库并找到方法来找出我需要的一切,并且我已经启动并运行了一些东西,但我特别遇到了麻烦。

最佳答案

搜索关键字INSERT、UPDATE、DELETE和SELECT,到达程序文件中的SQL语句,找出表名和表列。您可以从提供给 SQL 语句中使用的参数的值中获取最接近的 SQL 数据类型信息。您可能会根据 WHERE 子句中的列了解什么可能是主键,但这需要您对列的预期用途的判断和熟悉来决定某些列作为主键,因为非主列也可以出现在 WHERE 子句中。

例如,我在文件 useroptions.vb 中看到以下代码:

                Dim Connection As New MySqlConnection(Utils.connectionString) : Connection.Open()
                Dim Command As New MySqlCommand("UPDATE custom_user_data SET `" + name + "`=@value WHERE userID=@userID;", Connection)
                Command.Parameters.AddWithValue("@value", value)
                Command.Parameters.Add("@userID", MySqlDbType.Int32).Value = userID
                Command.ExecuteNonQuery()

在这里您可以找到 UPDATE 语句。第一个标识符 custom_user_data 是表的名称。变量名称包含一个您必须弄清楚的列名称。 WHERE 子句包含列名 userID。您可以从参数中获取一些SQL数据类型信息。不幸的是,我不是 VB 程序员,因此我无法提供更多信息。正如有人指出的那样,从程序中获取各种约束(主键、外键、检查约束)、可空性信息、触发器、任何存储过程等几乎是不可能的。祝你好运。

关于mysql - 从代码中检索表名和列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18710143/

相关文章:

mysql - Django Admin 外键从单个 SQL 查询中下拉

database - 检查该号码是否已在 Viber、WhatsApp 或 iMessage 中注册

mysql - MySQL 表中的列顺序是否重要?

jquery - 打开并显示我的 jquery 对话框时出现问题

mysql - 基于指定值的子查询中的 GROUP_CONCAT

mysql - SQL: DATE_ADD(date,INTERVAL expr type) 跳过周末

sql-server - 数据库镜像/复制,SQL Server 2005

xml - VB.Net Xpath错误:表达式必须计算为节点集。

vb.net - 从数据表更新 sqlite 文件

java - MySQL datetime 和 joda time 的区别