- 
          
- 
                Notifications
    You must be signed in to change notification settings 
- Fork 2
DELETE
        Oxford Harrison edited this page Nov 19, 2024 
        ·
        7 revisions
      
    The DELETE statement.
See APIS ➞
client.query(),table.delete()
| Section | Description | 
|---|---|
| Basic Delete | Run a basic DELETE operation. | 
| The WHEREClause | - | 
| The RETURNINGClause | - | 
// (a): SQL syntax
const result = await client.query(
    `DELETE FROM public.users`
);// (b): Object-based syntax
const result = await client.database('public').table('users').delete();Find by simple expression:
// (a): SQL syntax
const result = await client.query(
    `DELETE FROM public.users
    WHERE name = 'John' AND role = 'guest'`
);// (b): Object-based syntax
const result = await client.database('public').table('users').delete(
    { where: [
        { eq: ['name', { value: 'John' }] },
        { eq: ['role', { value: 'guest' }] }
    ] }
);// (c): Function-based syntax
const result = await client.database('public').table('users').delete(
    { where: [
        (q) => q.eq('name', (r) => r.value('John')),
        (q) => q.eq('role', (r) => r.value('guest'))
    ] }
);Find by complex expression:
// (a): SQL syntax
const result = await client.query(
    `DELETE FROM public.users
    WHERE (role = $1 OR role = $2) AND (
        email IS NOT NULL OR (
            phone IS NOT NULL AND country_code IS NOT NULL
        )
    )`
);// (b): Object-based syntax
const result = await client.database('public').table('users').delete(
    { where: [
        { some: [
            { eq: ['role', { binding: 'admin' }] },
            { eq: ['role', { binding: 'contributor' }] }
        ] },
        { some: [
            { isNotNull: 'email' },
            { every: [
                { isNotNull: 'phone' },
                { isNotNull: 'country_code' }
            ] }
        ] }
    ] }
);// (c): Function-based syntax
const result = await client.database('public').table('users').delete(
    { where: [
        (q) => q.some(
            (r) => r.eq('role', (s) => s.binding('admin')),
            (r) => r.eq('role', (s) => s.binding('contributor')),
        ),
        (q) => q.some(
            (r) => r.isNotNull('email'),
            (r) => r.every(
                (s) => s.isNotNull('phone'),
                (s) => s.isNotNull('country_code')
            )
        )
    ] }
);Examples coming soon.