21 lines
1.2 KiB
TypeScript
21 lines
1.2 KiB
TypeScript
import { type BUN_MARIADB_FieldSchemaType, type BUN_MARIADB_ForeignKeyRule } from "../../types";
|
|
export declare function defaultForeignKeyName(tableName: string, fieldName: string): string;
|
|
export declare function resolveForeignKeyName(field: BUN_MARIADB_FieldSchemaType, tableName: string): string;
|
|
/**
|
|
* Normalize a referential action as MariaDB reports it in
|
|
* `information_schema.REFERENTIAL_CONSTRAINTS`. InnoDB treats `NO ACTION`
|
|
* exactly like `RESTRICT`, so both compare as `RESTRICT`.
|
|
*/
|
|
export declare function normalizeForeignKeyRule(rule: string | undefined | null): BUN_MARIADB_ForeignKeyRule;
|
|
/**
|
|
* Resolve the ON DELETE / ON UPDATE actions for a field's foreign key.
|
|
* Precedence: `foreignKey.onDelete` > field `onDeleteLiteral` / `onDelete`
|
|
* (legacy) > `cascadeDelete` > `RESTRICT`. Same for update, except the
|
|
* field-level `onUpdate*` keys are column `ON UPDATE` clauses, not FK rules.
|
|
*/
|
|
export declare function resolveForeignKeyRules(field: BUN_MARIADB_FieldSchemaType, tableName?: string): {
|
|
onDelete: BUN_MARIADB_ForeignKeyRule;
|
|
onUpdate: BUN_MARIADB_ForeignKeyRule;
|
|
};
|
|
export default function buildForeignKeyConstraint(field: BUN_MARIADB_FieldSchemaType, tableName: string): string;
|