MySqlDeleteBase Class — drizzle-orm Architecture
Architecture documentation for the MySqlDeleteBase class in delete.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD 15a2ffa1_404a_10ae_cde1_a0d6e9ec84e5["MySqlDeleteBase"] 9d05685b_72c7_bd52_a276_9a2db3ed99df["delete.ts"] 15a2ffa1_404a_10ae_cde1_a0d6e9ec84e5 -->|defined in| 9d05685b_72c7_bd52_a276_9a2db3ed99df 1dc8d3d1_d593_c14b_d427_68158a854ce1["constructor()"] 15a2ffa1_404a_10ae_cde1_a0d6e9ec84e5 -->|method| 1dc8d3d1_d593_c14b_d427_68158a854ce1 94d9f720_4e7d_e435_7ca9_8ebc87bb567b["where()"] 15a2ffa1_404a_10ae_cde1_a0d6e9ec84e5 -->|method| 94d9f720_4e7d_e435_7ca9_8ebc87bb567b aa4aa497_8866_9da1_05e3_5ae70bf85be0["orderBy()"] 15a2ffa1_404a_10ae_cde1_a0d6e9ec84e5 -->|method| aa4aa497_8866_9da1_05e3_5ae70bf85be0 948b4797_385b_476e_36b9_87615a3a2920["limit()"] 15a2ffa1_404a_10ae_cde1_a0d6e9ec84e5 -->|method| 948b4797_385b_476e_36b9_87615a3a2920 9c41dd69_aefd_e482_6f36_cf99188bba37["getSQL()"] 15a2ffa1_404a_10ae_cde1_a0d6e9ec84e5 -->|method| 9c41dd69_aefd_e482_6f36_cf99188bba37 6c5154cb_4d5f_978d_f88a_c8e79873d9f2["toSQL()"] 15a2ffa1_404a_10ae_cde1_a0d6e9ec84e5 -->|method| 6c5154cb_4d5f_978d_f88a_c8e79873d9f2 46e6bfc1_cc23_17ef_28bd_d53f28028f35["prepare()"] 15a2ffa1_404a_10ae_cde1_a0d6e9ec84e5 -->|method| 46e6bfc1_cc23_17ef_28bd_d53f28028f35 d04e52ee_23f9_f475_a2bb_a669e3d8a109["$dynamic()"] 15a2ffa1_404a_10ae_cde1_a0d6e9ec84e5 -->|method| d04e52ee_23f9_f475_a2bb_a669e3d8a109
Relationship Graph
Source Code
drizzle-orm/src/mysql-core/query-builders/delete.ts lines 87–215
export class MySqlDeleteBase<
TTable extends MySqlTable,
TQueryResult extends MySqlQueryResultHKT,
// eslint-disable-next-line @typescript-eslint/no-unused-vars
TPreparedQueryHKT extends PreparedQueryHKTBase,
TDynamic extends boolean = false,
// eslint-disable-next-line @typescript-eslint/no-unused-vars
TExcludedMethods extends string = never,
> extends QueryPromise<MySqlQueryResultKind<TQueryResult, never>> implements SQLWrapper {
static override readonly [entityKind]: string = 'MySqlDelete';
private config: MySqlDeleteConfig;
constructor(
private table: TTable,
private session: MySqlSession,
private dialect: MySqlDialect,
withList?: Subquery[],
) {
super();
this.config = { table, withList };
}
/**
* Adds a `where` clause to the query.
*
* Calling this method will delete only those rows that fulfill a specified condition.
*
* See docs: {@link https://orm.drizzle.team/docs/delete}
*
* @param where the `where` clause.
*
* @example
* You can use conditional operators and `sql function` to filter the rows to be deleted.
*
* ```ts
* // Delete all cars with green color
* db.delete(cars).where(eq(cars.color, 'green'));
* // or
* db.delete(cars).where(sql`${cars.color} = 'green'`)
* ```
*
* You can logically combine conditional operators with `and()` and `or()` operators:
*
* ```ts
* // Delete all BMW cars with a green color
* db.delete(cars).where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));
*
* // Delete all cars with the green or blue color
* db.delete(cars).where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));
* ```
*/
where(where: SQL | undefined): MySqlDeleteWithout<this, TDynamic, 'where'> {
this.config.where = where;
return this as any;
}
orderBy(
builder: (deleteTable: TTable) => ValueOrArray<MySqlColumn | SQL | SQL.Aliased>,
): MySqlDeleteWithout<this, TDynamic, 'orderBy'>;
orderBy(...columns: (MySqlColumn | SQL | SQL.Aliased)[]): MySqlDeleteWithout<this, TDynamic, 'orderBy'>;
orderBy(
...columns:
| [(deleteTable: TTable) => ValueOrArray<MySqlColumn | SQL | SQL.Aliased>]
| (MySqlColumn | SQL | SQL.Aliased)[]
): MySqlDeleteWithout<this, TDynamic, 'orderBy'> {
if (typeof columns[0] === 'function') {
const orderBy = columns[0](
new Proxy(
this.config.table[Table.Symbol.Columns],
new SelectionProxyHandler({ sqlAliasedBehavior: 'alias', sqlBehavior: 'sql' }),
) as any,
);
const orderByArray = Array.isArray(orderBy) ? orderBy : [orderBy];
this.config.orderBy = orderByArray;
} else {
const orderByArray = columns as (MySqlColumn | SQL | SQL.Aliased)[];
this.config.orderBy = orderByArray;
}
return this as any;
Domain
Source
Frequently Asked Questions
What is the MySqlDeleteBase class?
MySqlDeleteBase is a class in the drizzle-orm codebase, defined in drizzle-orm/src/mysql-core/query-builders/delete.ts.
Where is MySqlDeleteBase defined?
MySqlDeleteBase is defined in drizzle-orm/src/mysql-core/query-builders/delete.ts at line 87.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free