drizzle-team / drizzle-team/drizzle-orm

[FEATURE]: `CREATE TRIGGER` functions

Open
#843 23 comments 558 reactions 0 assignees View on GitHub
db/mysql db/postgres db/sqlite drizzle/kit enhancement
Dominant language
TypeScript
Stars
35.8k
Forks
1.6k
Avg merge
2d 7h
Merged PRs (30d)
4

Description

### Describe what you want

Expected behavior:
```ts
export const users = pgTable('users', {
updatedAt: timestamp('updated_at')
.defaultNow()
.notNull()
// Feature request:
.triggerBeforeUpdate('set_updated_at', sql`set_updated_at()`),
});
```
```sql
-- Inserted manually in a previous migration file
CREATE OR REPLACE FUNCTION set_updated_at()
RETURNS TRIGGER AS
$$
BEGIN
NEW.updated_at = NOW();
RETURN NEW;
END;
$$ LANGUAGE 'plpgsql';
```
```sql
CREATE TABLE IF NOT EXISTS "users" (
"updated_at" timestamp DEFAULT now() NOT NULL,
);

CREATE TRIGGER set_updated_at
BEFORE UPDATE ON "users"
FOR EACH ROW
EXECUTE PROCEDURE set_updated_at();
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.