INSERT

Syntax

INSERT INTO [MAPPING] mapping_name '(' columnReference [, ...] ')'
    { VALUES ( { expression | DEFAULT } [, ...] ) | query }  [IF bool_expr]

columnReference:
      family_name ':' column_name
    | alias_name
    | family_name '(' column_name [,...] ')'

Description

Inserts values into a table.

  • A key value must be included in the column_reference list.
  • Inserts can also done using annotated objects or the HRecord interface, as seen below.
  • "family1(column1, column2)" is a column reference for "family1:column1, family1:column2"

Example

        HConnection conn = HConnectionManager.newConnection();

        conn.execute("CREATE TEMP MAPPING fooMapping FOR TABLE foo "
                     + "("
                     + "keyval KEY, "
                     + "family1 ("
                     + "  val1 INT ALIAS val1, "
                     + "  val2 STRING ALIAS val2"
                     + "))");

        conn.execute("INSERT INTO fooMapping (keyval, val1, val2) "
                     + "VALUES (ZEROPAD(2, 10), 123, 'test val')");

        // Or using the Record interface
        HRecord rec = conn.getMapping("fooMapping").newHRecord();
        rec.setCurrentValue("keyval", Util.getZeroPaddedNonNegativeNumber(2, 10));
        rec.setCurrentValue("val1", 123);
        rec.setCurrentValue("al2", "testval");

        HBatch<HRecord> batch = conn.newHBatch();
        batch.insert(rec);
        batch.apply();

        HConnection conn = HConnectionManager.newConnection();

        // A column with a default value.
        conn.execute("CREATE TEMP MAPPING fooMapping FOR TABLE foo "
                     + "("
                     + "keyval KEY, "
                     + "family1 ("
                     + "  val1 INT ALIAS val1, "
                     + "  val2 STRING ALIAS val2 DEFAULT 'this is a default value'"
                     + "))");

        HPreparedStatement ps = conn.prepareStatement("INSERT INTO fooMapping (keyval, val1, val2) "
                                                      + "VALUES (:key, :val1, DEFAULT)");

        ps.setParameter("key", Util.getZeroPaddedNonNegativeNumber(2, 10));
        ps.setParameter("val1", 123);

        ps.execute();
        conn.execute("CREATE MAPPING fooMapping FOR TABLE foo_table "
                     + "("
                     + "keyval KEY, "
                     + "family1 ("
                     + "  val1 STRING ALIAS val1, "
                     + "  val2 STRING ALIAS val2, "
                     + "  val3 STRING ALIAS val3, "
                     + "  val4 STRING ALIAS val4 "
                     + "))");
        conn.execute("INSERT INTO fooMapping (keyval, val1, val2) "
                     + "SELECT keyval, val3, val4 FROM foo2");

        conn.execute("CREATE MAPPING fooMapping FOR TABLE foo_table "
                     + "("
                     + "keyval KEY, "
                     + "family1 ("
                     + "  val1 STRING, "
                     + "  val2 STRING, "
                     + "  val3 STRING ALIAS val3, "
                     + "  val4 STRING ALIAS val4 "
                     + "))");
        conn.execute("INSERT INTO fooMapping (keyval, family1(val1, val2)) "
                     + "SELECT keyval, val3, val4 FROM foo2");