【问题标题】:Map Google Sheets columns to MySQL data types将 Google 表格列映射到 MySQL 数据类型
【发布时间】:2021-05-21 20:40:39
【问题描述】:

鉴于我有一个与此类似的 Google 表格:

ID;username,email,date_created;
hdJNGDyd;user;me@example.com;12/03/2020 4:20:22
...

有没有办法确定 Sheet 列的格式并列出它们?

例如。

ID - string(8)
username - varchar(34)
email - varchar(255)
date_created - datetime

或将工作表结构映射到类似于以下内容的 SQL 查询:

CREATE table MyTable
`ID` varchar(8) NOT NULL
...

例如,长度可以是特定列中值的最大长度。

【问题讨论】:

  • 您打算如何传输数据?

标签: mysql google-apps-script google-sheets spreadsheet


【解决方案1】:

我会创建一个选项卡,其中包含一个列出数据字典的表格

但是,sheets 有一个可以使用的 TYPE() 函数。如果您还想获得需要一些额外计算的最大长度。

如您所见,没有日期类型,只有数字类型。与 SQL 提供的功能大不相同。

在我的一些项目中,我使用 google app 脚本从 MySQL 数据库中获取架构,然后采取相应措施

function getColTypes(conn, table) {
  var stmt = conn.createStatement();
  var query = "SELECT COLUMN_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='" + DATABASE + "' AND TABLE_NAME='" + table + "'";
  var rs = stmt.executeQuery(query);
  var colTypes = [];
  while (rs.next()) {
    colTypes.push(rs.getString(1));
  }
  rs.close();
  stmt.close();
  return colTypes;
}

这个是名字

function getColNames(conn, table) {
  var stmt = conn.createStatement();
  var query = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='" + DATABASE + "' AND TABLE_NAME='" + table + "'";
  var rs = stmt.executeQuery(query);
  var colNames = [];
  while (rs.next()) {
    colNames.push(rs.getString(1));
  }
  rs.close();
  stmt.close();
  return colNames;
}

【讨论】:

    猜你喜欢
    • 2020-05-02
    • 2015-02-06
    • 1970-01-01
    • 1970-01-01
    • 2018-09-02
    • 1970-01-01
    • 1970-01-01
    • 2011-07-11
    • 1970-01-01
    相关资源
    最近更新 更多