【问题标题】:how to auto update SQl database with google sheets data如何使用谷歌表格数据自动更新 SQl 数据库
【发布时间】:2021-04-29 15:31:48
【问题描述】:

我有一个谷歌表,上面有数据。我有一个 MySQL 数据库,它将是 Google 表格数据的精确副本。我想这样做,所以当他们保存页面时,它将使用网站将从中提取数据的新数据自动更新 MySQL 数据库。到目前为止,这是我的脚本。我可以连接到数据库,但看不到如何使用工作表数据自动更新它。

var server = 'server ip';
var dbName = 'db name';
var username = 'user';
var password = 'pass';
var port = '3306';

function CreateConnection() {
  var url = "jdbc:mysql://" + server + ":" + port + "/" + dbName;
  var conn = Jdbc.getConnection(url, username, password);

  conn.close();
}

这是我的专栏:

  1. ID(自动递增)
  2. CU 编号
  3. 姓名
  4. 电话
  5. 许可证号
  6. 状态 1-5
  7. 最后更新

【问题讨论】:

  • 那不是 PHP。这是 JavaScript 吗? (使用 JDBC??)
  • 这是 google-apps-script,即位于 Google 应用程序(如表格、文档等)中的另一个 javascript 分身

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


【解决方案1】:

我了解到您有一个加载了列和值的工作表,并且您希望将它们插入到现有的 MySQL 数据库中。我看到您已经编写了 connection 到数据库的脚本,因此您非常接近实现目标。

首先,您需要从表格中减去数据。要管理它,您可以使用Range.getValues() 并将信息保存在一个变量中。现在的目标是创建一个 SQL 语句,将所需的值插入到表中。它可能看起来类似于这个:

INSERT INTO tableName (column1, column2, column3, column4, column5, column6, column7) VALUES ('column1Value', 'column2Value', 'column3Value', 'column4Value', 'column5Value', 'column6Value', 'column7Value');

牢记该结构,您可以通过替换占位符并更新值以包含先前保存的数据数组来轻松构建自己的语句。然后,您只需将该语句发送到数据库。为此,您可以使用JdbcConnection.createStatement()JdbcStatement.execute()。请询问我任何其他疑问以更好地记录此方法。

【讨论】:

    【解决方案2】:

    基于整个工作表自动更新数据库可能不是一个好主意,因为在填充工作表时会出现手动错误。因此,我建议采用基于表单的方法,在表单提交时,您有一个触发器,该触发器运行一个函数以将该新条目插入数据库。使用表单的好处是可以防止人为错误。如果不是这样,那么您可以保留一个标志列,并根据它的值,您可以使用基于时间的触发器运行尚未处理到 db 中的那些,该触发器每 10 分钟运行一次。所有这些对于防止数据库中的重复条目和避免手动错误都很重要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-30
      • 2017-11-06
      • 1970-01-01
      • 1970-01-01
      • 2014-09-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多