我有一个谷歌表上有数据。我有一个MySQL数据库,这将是谷歌表数据的精确副本。我想让它,所以当他们保存页面,它会自动更新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();
}
以下是我的专栏:
- ID (auto increments)
- CUs没有 <
- 名称/gh>手机
- 许可没有。
- 状态1 - 5 去年更新
我知道你有一个表加载的列和值,你想把它们插入到现有的MySQL数据库。我看到您已经编写了到数据库的连接的脚本,所以您非常接近您的目标。
首先,您需要从表中减去数据。要做到这一点,您可以使用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()
。如果有任何疑问,请告诉我,以便更好地记录此方法。
基于整个工作表自动更新db可能不是一个好主意,因为在填写工作表时可能会出现手动错误。因此,我建议采用基于表单的方法,在表单提交时使用一个触发器,该触发器运行一个函数将新条目插入数据库。使用表单的好处是可以防止人为错误。如果不是这样,那么你可以保留一个标志列,并根据它的值,你可以运行那些还没有被处理成数据库使用一个基于时间的触发器运行说每10分钟。所有这些对于防止数据库中的重复条目和避免手动错误都很重要。