Esempio n. 1
0
  @Override
  public boolean visit(MySqlInsertStatement x) {
    setMode(x, Mode.Insert);

    setAliasMap();

    if (x.getTableName() instanceof SQLIdentifierExpr) {
      String ident = ((SQLIdentifierExpr) x.getTableName()).getName();
      setCurrentTable(x, ident);

      TableStat stat = getTableStat(ident);
      stat.incrementInsertCount();

      Map<String, String> aliasMap = getAliasMap();
      if (aliasMap != null) {
        if (x.getAlias() != null) {
          aliasMap.put(x.getAlias(), ident);
        }
        aliasMap.put(ident, ident);
      }
    }

    accept(x.getColumns());
    accept(x.getValuesList());
    accept(x.getQuery());
    accept(x.getDuplicateKeyUpdate());

    return false;
  }
Esempio n. 2
0
 /**
  * 是否为批量插入:insert into ...values (),()...或 insert into ...select.....
  *
  * @param insertStmt
  * @return
  */
 private static boolean isMultiInsert(MySqlInsertStatement insertStmt) {
   return (insertStmt.getValuesList() != null && insertStmt.getValuesList().size() > 1)
       || insertStmt.getQuery() != null;
 }
Esempio n. 3
0
  @Override
  public boolean visit(MySqlInsertStatement x) {
    print("INSERT ");

    if (x.isLowPriority()) {
      print("LOW_PRIORITY ");
    }

    if (x.isDelayed()) {
      print("DELAYED ");
    }

    if (x.isHighPriority()) {
      print("HIGH_PRIORITY ");
    }

    if (x.isIgnore()) {
      print("IGNORE ");
    }

    print("INTO ");

    x.getTableName().accept(this);

    if (x.getColumns().size() > 0) {
      incrementIndent();
      println();
      print("(");
      for (int i = 0, size = x.getColumns().size(); i < size; ++i) {
        if (i != 0) {
          if (i % 5 == 0) {
            println();
          }
          print(", ");
        }

        x.getColumns().get(i).accept(this);
      }
      print(")");
      decrementIndent();
    }

    if (x.getValuesList().size() != 0) {
      println();
      print("VALUES");
      println();
      for (int i = 0, size = x.getValuesList().size(); i < size; ++i) {
        if (i != 0) {
          print(", ");
        }
        x.getValuesList().get(i).accept(this);
      }
    }

    if (x.getQuery() != null) {
      print(" ");
      x.getQuery().accept(this);
    }

    if (x.getDuplicateKeyUpdate().size() != 0) {
      print(" ON DUPLICATE KEY UPDATE ");
      printAndAccept(x.getDuplicateKeyUpdate(), ", ");
    }

    return false;
  }