org.jooq.InsertValuesStep21 Maven / Gradle / Ivy
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Other licenses:
* -----------------------------------------------------------------------------
* Commercial licenses for this work are available. These replace the above
* Apache-2.0 license and offer limited warranties, support, maintenance, and
* commercial database integrations.
*
* For more information, please visit: https://www.jooq.org/legal/licensing
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
package org.jooq;
import java.util.Collection;
import java.util.function.Function;
import org.jetbrains.annotations.NotNull;
/**
* This type is used for the {@link Insert}'s DSL API.
*
* Example:
* using(configuration)
* .insertInto(table, field1, field2, field3, .., field20, field21)
* .values(valueA1, valueA2, valueA3, .., valueA20, valueA21)
* .values(valueB1, valueB2, valueB3, .., valueB20, valueB21)
* .onDuplicateKeyUpdate()
* .set(field1, value1)
* .set(field2, value2)
* .execute();
*
*
* @author Lukas Eder
*/
public interface InsertValuesStep21 extends InsertOnDuplicateStep {
/**
* Add a single row of values to the insert statement.
*/
@NotNull @CheckReturnValue
@Support
InsertValuesStep21 values(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13, T14 value14, T15 value15, T16 value16, T17 value17, T18 value18, T19 value19, T20 value20, T21 value21);
/**
* Add a single row of values to the insert statement.
*/
@NotNull @CheckReturnValue
@Support
InsertValuesStep21 values(Field value1, Field value2, Field value3, Field value4, Field value5, Field value6, Field value7, Field value8, Field value9, Field value10, Field value11, Field value12, Field value13, Field value14, Field value15, Field value16, Field value17, Field value18, Field value19, Field value20, Field value21);
/**
* Add a single row of values to the insert statement.
*/
@NotNull @CheckReturnValue
@Support
InsertValuesStep21 values(Collection> values);
/**
* Add a single row of values to the insert statement.
*/
@NotNull @CheckReturnValue
@Support
InsertValuesStep21 values(Row21 values);
/**
* Add a single row of values to the insert statement.
*/
@NotNull @CheckReturnValue
@Support
InsertValuesStep21 values(Record21 values);
/**
* Add multiple rows of values to the insert statement.
*
* This is equivalent to calling the other values clauses multiple times, but
* allows for dynamic construction of row arrays.
*
* @see Rows#toRowArray(Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function)
*/
@NotNull @CheckReturnValue
@Support
@SuppressWarnings("unchecked")
InsertValuesStep21 valuesOfRows(Row21... values);
/**
* Add multiple rows of values to the insert statement.
*
* This is equivalent to calling the other values clauses multiple times, but
* allows for dynamic construction of row arrays.
*
* @see Rows#toRowList(Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function)
*/
@NotNull @CheckReturnValue
@Support
InsertValuesStep21 valuesOfRows(Collection extends Row21> values);
/**
* Add multiple rows of values to the insert statement.
*
* This is equivalent to calling the other values clauses multiple times, but
* allows for dynamic construction of row arrays.
*
* Note: Irrespective of individual {@link Record#changed()}
* flag values, all record values are copied to the VALUES
clause
* using {@link Record#intoArray()}, to match insert columns by position, not
* by name. If you prefer omitting unchanged values and adding values by field
* name rather than by index, use {@link InsertSetStep#set(Record...)} instead.
* That syntax is available only if you omit the explicit insert columns list.
*/
@NotNull @CheckReturnValue
@Support
@SuppressWarnings("unchecked")
InsertValuesStep21 valuesOfRecords(Record21... values);
/**
* Add multiple rows of values to the insert statement.
*
* This is equivalent to calling the other values clauses multiple times, but
* allows for dynamic construction of row arrays.
*
* Note: Irrespective of individual {@link Record#changed()}
* flag values, all record values are copied to the VALUES
clause
* using {@link Record#intoArray()}, to match insert columns by position, not
* by name. If you prefer omitting unchanged values and adding values by field
* name rather than by index, use {@link InsertSetStep#set(Record...)} instead.
* That syntax is available only if you omit the explicit insert columns list.
*/
@NotNull @CheckReturnValue
@Support
InsertValuesStep21 valuesOfRecords(Collection extends Record21> values);
/**
* Use a SELECT
statement as the source of values for the
* INSERT
statement
*
* This variant of the INSERT … SELECT
statement expects a
* select returning exactly as many fields as specified previously in the
* INTO
clause:
* {@link DSLContext#insertInto(Table, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field)}
*/
@NotNull @CheckReturnValue
@Support
InsertOnDuplicateStep select(Select extends Record21> select);
}