Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 从Google工作表中命名范围内的数据在Google Cloud SQL中创建表_Mysql_Sql_Google Apps Script_Google Sheets_Google Cloud Sql - Fatal编程技术网

Mysql 从Google工作表中命名范围内的数据在Google Cloud SQL中创建表

Mysql 从Google工作表中命名范围内的数据在Google Cloud SQL中创建表,mysql,sql,google-apps-script,google-sheets,google-cloud-sql,Mysql,Sql,Google Apps Script,Google Sheets,Google Cloud Sql,我在谷歌电子表格中有多个命名范围。我需要在Google Cloud SQL中为每个命名范围创建表,其中包含来自各个命名范围的数据 我为此开发了以下谷歌应用程序脚本。但我很好奇,是否有更好的方法来实现这一点与谷歌应用程序脚本或其他东西。我乐于接受各种想法 var conn = Jdbc.getConnection(dbUrl, user, userPwd); var colNames = rangeValues[0]; var sampleRow = rangeValues[2]

我在谷歌电子表格中有多个命名范围。我需要在Google Cloud SQL中为每个命名范围创建表,其中包含来自各个命名范围的数据

我为此开发了以下谷歌应用程序脚本。但我很好奇,是否有更好的方法来实现这一点与谷歌应用程序脚本或其他东西。我乐于接受各种想法

  var conn = Jdbc.getConnection(dbUrl, user, userPwd);

  var colNames = rangeValues[0];
  var sampleRow = rangeValues[2]

  var CREATE_TABLE_STATEMENT = " CREATE TABLE " + tableName + "(";

  var COLUMNS_TYPES= Array();
  var UntitledColumnName = 1;
  for (var colNames_i = 0; colNames_i < colNames.length; colNames_i++) {
    var colName = colNames[colNames_i];
    if (typeof sampleRow[colNames_i] == "number") {
      COLUMNS_TYPES[colNames_i] = "number";
      if (colName != "") {
        CREATE_TABLE_STATEMENT += " `" + colName + "` INT,";
      }
      else {
        CREATE_TABLE_STATEMENT += " " + "Column" + UntitledColumnName + " INT,";
        UntitledColumnName++;
      }
    }
    else {
      COLUMNS_TYPES[colNames_i] = 'string';
      if (colName != "") {
        CREATE_TABLE_STATEMENT += " `" + colName + "` VARCHAR(255),";
      }
      else {
        CREATE_TABLE_STATEMENT += " " + "Column" + UntitledColumnName +   " VARCHAR(255),";
        UntitledColumnName++;
      }
    }
  }

  CREATE_TABLE_STATEMENT = CREATE_TABLE_STATEMENT.slice(0, -1);
  CREATE_TABLE_STATEMENT += ")"
  Logger.log(CREATE_TABLE_STATEMENT);

  var stmt = conn.prepareStatement(CREATE_TABLE_STATEMENT); 
  stmt.execute();
  //   conn.setAutoCommit(false);

  for (var row_i = 1; row_i < rangeValues.length; row_i++) {
    var INSERT_STATEMENT = "INSERT INTO " + tableName + " values (";
    for (var colNames_i = 0; colNames_i < colNames.length; colNames_i++){
      if (COLUMNS_TYPES[colNames_i] == "number") {
        INSERT_STATEMENT +=  rangeValues[row_i][colNames_i] + ",";
      }
      else {
        INSERT_STATEMENT +=  "'" + rangeValues[row_i][colNames_i] + "',";
      }
    }

    INSERT_STATEMENT = INSERT_STATEMENT.slice(0, -1);
    INSERT_STATEMENT += ")"

    Logger.log(INSERT_STATEMENT);
    var stmt = conn.prepareStatement(INSERT_STATEMENT);
    try {
      stmt.execute();
    }
    catch(e){}
  }
var conn=Jdbc.getConnection(dbUrl、user、userPwd);
var colNames=范围值[0];
var sampleRow=范围值[2]
var CREATE_TABLE_STATEMENT=“CREATE TABLE”+tableName+”(“;
var COLUMNS_TYPES=Array();
var UntitledColumnName=1;
for(var colNames_i=0;colNames_i
您可以使用批处理方法,而不是在添加语句时立即执行语句。@tehhowch您能告诉我如何使用上述代码进行批处理吗?注:注:每次的列数不同。这就是我使用嵌套循环的原因