【问题标题】:Is it possible create a table with n number on mysql? Where n is variable是否可以在 mysql 上创建一个具有 n 个数字的表?其中 n 是可变的
【发布时间】:2016-10-31 08:23:42
【问题描述】:

我的团队合作有问题,让我解释一下。 他们有一组记录,并将数据放入 Visual Studio 上的数据网格中。下一步是将数据网格的内容移动到 MySQL 数据库,但标题是问题,因为他们想将它们转换为 SQL 变量。

就这样。

CREATE TABLE anyname (
      ID not null,
      variable1 (from datagrid) varchar (60),
      .
      .
      .
      variablen (from datagrid) varchar (60)

);

有可能吗?

【问题讨论】:

  • 你想在这里做什么?这是一个非常模糊的问题。另外,您为什么想要这样的架构?维持它似乎是一场噩梦。另外60有什么神奇的吗?这似乎非常武断,必然会导致数据截断。
  • 虽然我质疑为什么要动态创建大量表并想知道它们是否可能是一个更静态的结构,但我认为使用应用程序层来完成这项任务会比数据库层更好因为 datagrid 源已经具有结构,所以要弄清楚如何从 datatable 或任何源创建表。在 SQL 中,这会复杂得多,但您可以创建参数化存储过程并执行动态 sql 来实际创建表,这也可能使您面临 sql 注入攻击,具体取决于填充参数的位置

标签: mysql sql visual-studio datagrid


【解决方案1】:

一种更通用、更灵活的方法是将列号作为表中的一个字段,而不是为每个网格列设置一个单独的列。

CREATE TABLE anyname (
    id NOT NULL,
    rownum INT,
    colnum INT,
    valvalue VARCHAR(60),
    UNIQUE KEY (rownum, colnum)
);

【讨论】:

    【解决方案2】:

    例如,您可以在 python 中构建 CREATE TABLE,然后执行它。没问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-25
      • 2015-07-05
      • 2019-08-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-14
      相关资源
      最近更新 更多