Column Constraints
Primary Key Constraint
Use .primary to set a column as primary key:
typescript
.column('id').int.primary.autoIncrementAuto Increment
Use .autoIncrement to set an auto-increment column:
typescript
.column('id').int.primary.autoIncrementNullability
.nullable- Allow NULL values.notNull- Disallow NULL values
typescript
.column('name').varchar(255).notNull
.column('email').varchar(255).nullableUnique Constraint
Use .unique to set a unique constraint:
typescript
.column('email').varchar(255).unique.notNullDefault Value
Use .default(value) to set a default value:
typescript
.column('status').smallint.default(0)
.column('createdAt').timestamp.default('CURRENT_TIMESTAMP')
.column('name').varchar(255).default('Unknown')Foreign Key Constraints
Basic Usage
typescript
.column('authorId').int.notNull.references('users', 'id')Delete Action
Use .onDelete(action) to set the action on delete:
typescript
.column('authorId').int.notNull
.references('users', 'id')
.onDelete('CASCADE')Supported actions:
'CASCADE'- Cascade delete'SET NULL'- Set to NULL'RESTRICT'- Restrict delete'NO ACTION'- No action
Update Action
Use .onUpdate(action) to set the action on update:
typescript
.column('authorId').int.notNull
.references('users', 'id')
.onUpdate('CASCADE')Supported actions:
'CASCADE'- Cascade update'SET NULL'- Set to NULL'RESTRICT'- Restrict update'NO ACTION'- No action
Complete Example
typescript
.column('authorId').int.notNull
.references('users', 'id')
.onDelete('CASCADE')
.onUpdate('RESTRICT')Combining Constraints
You can combine multiple constraints:
typescript
.column('id').int.primary.autoIncrement
.column('email').varchar(255).unique.notNull
.column('status').smallint.default(0).notNull
.column('authorId').int.notNull.references('users', 'id').onDelete('CASCADE')