MySqlInsertBuilder Class — drizzle-orm Architecture
Architecture documentation for the MySqlInsertBuilder class in insert.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD 25259b4b_5552_40d0_69a5_4bbac3025dc9["MySqlInsertBuilder"] a270d70d_1a42_692c_4fcf_09f69761d58e["insert.ts"] 25259b4b_5552_40d0_69a5_4bbac3025dc9 -->|defined in| a270d70d_1a42_692c_4fcf_09f69761d58e 6355b30e_4df5_be77_b2aa_4b3f237ee74c["constructor()"] 25259b4b_5552_40d0_69a5_4bbac3025dc9 -->|method| 6355b30e_4df5_be77_b2aa_4b3f237ee74c 873e8e27_7565_c887_8b88_ed79ed56bc54["ignore()"] 25259b4b_5552_40d0_69a5_4bbac3025dc9 -->|method| 873e8e27_7565_c887_8b88_ed79ed56bc54 a2614cb2_5d7d_d96b_b795_d1927ebdc101["values()"] 25259b4b_5552_40d0_69a5_4bbac3025dc9 -->|method| a2614cb2_5d7d_d96b_b795_d1927ebdc101 8c0bf2a2_76fc_e577_c5e6_ccc78a786070["select()"] 25259b4b_5552_40d0_69a5_4bbac3025dc9 -->|method| 8c0bf2a2_76fc_e577_c5e6_ccc78a786070
Relationship Graph
Source Code
drizzle-orm/src/mysql-core/query-builders/insert.ts lines 49–116
export class MySqlInsertBuilder<
TTable extends MySqlTable,
TQueryResult extends MySqlQueryResultHKT,
TPreparedQueryHKT extends PreparedQueryHKTBase,
> {
static readonly [entityKind]: string = 'MySqlInsertBuilder';
private shouldIgnore = false;
constructor(
private table: TTable,
private session: MySqlSession,
private dialect: MySqlDialect,
) {}
ignore(): this {
this.shouldIgnore = true;
return this;
}
values(value: MySqlInsertValue<TTable>): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;
values(values: MySqlInsertValue<TTable>[]): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;
values(
values: MySqlInsertValue<TTable> | MySqlInsertValue<TTable>[],
): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT> {
values = Array.isArray(values) ? values : [values];
if (values.length === 0) {
throw new Error('values() must be called with at least one value');
}
const mappedValues = values.map((entry) => {
const result: Record<string, Param | SQL> = {};
const cols = this.table[Table.Symbol.Columns];
for (const colKey of Object.keys(entry)) {
const colValue = entry[colKey as keyof typeof entry];
result[colKey] = is(colValue, SQL) ? colValue : new Param(colValue, cols[colKey]);
}
return result;
});
return new MySqlInsertBase(this.table, mappedValues, this.shouldIgnore, this.session, this.dialect);
}
select(
selectQuery: (qb: QueryBuilder) => MySqlInsertSelectQueryBuilder<TTable>,
): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;
select(selectQuery: (qb: QueryBuilder) => SQL): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;
select(selectQuery: SQL): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;
select(selectQuery: MySqlInsertSelectQueryBuilder<TTable>): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;
select(
selectQuery:
| SQL
| MySqlInsertSelectQueryBuilder<TTable>
| ((qb: QueryBuilder) => MySqlInsertSelectQueryBuilder<TTable> | SQL),
): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT> {
const select = typeof selectQuery === 'function' ? selectQuery(new QueryBuilder()) : selectQuery;
if (
!is(select, SQL)
&& !haveSameKeys(this.table[Columns], select._.selectedFields)
) {
throw new Error(
'Insert select error: selected fields are not the same or are in a different order compared to the table definition',
);
}
return new MySqlInsertBase(this.table, select, this.shouldIgnore, this.session, this.dialect, true);
}
}
Domain
Source
Frequently Asked Questions
What is the MySqlInsertBuilder class?
MySqlInsertBuilder is a class in the drizzle-orm codebase, defined in drizzle-orm/src/mysql-core/query-builders/insert.ts.
Where is MySqlInsertBuilder defined?
MySqlInsertBuilder is defined in drizzle-orm/src/mysql-core/query-builders/insert.ts at line 49.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free