go-gorm/gorm · error

WHERE conditions required

Error message

WHERE conditions required

What it means

Error "WHERE conditions required" thrown in go-gorm/gorm.

Source

Thrown at errors.go:17

package gorm

import (
	"errors"

	"gorm.io/gorm/logger"
)

var (
	// ErrRecordNotFound record not found error
	ErrRecordNotFound = logger.ErrRecordNotFound
	// ErrInvalidTransaction invalid transaction when you are trying to `Commit` or `Rollback`
	ErrInvalidTransaction = errors.New("invalid transaction")
	// ErrNotImplemented not implemented
	ErrNotImplemented = errors.New("not implemented")
	// ErrMissingWhereClause missing where clause
	ErrMissingWhereClause = errors.New("WHERE conditions required")
	// ErrUnsupportedRelation unsupported relations
	ErrUnsupportedRelation = errors.New("unsupported relations")
	// ErrPrimaryKeyRequired primary keys required
	ErrPrimaryKeyRequired = errors.New("primary key required")
	// ErrModelValueRequired model value required
	ErrModelValueRequired = errors.New("model value required")
	// ErrModelAccessibleFieldsRequired model accessible fields required
	ErrModelAccessibleFieldsRequired = errors.New("model accessible fields required")
	// ErrSubQueryRequired sub query required
	ErrSubQueryRequired = errors.New("sub query required")
	// ErrInvalidData unsupported data
	ErrInvalidData = errors.New("unsupported data")
	// ErrUnsupportedDriver unsupported driver
	ErrUnsupportedDriver = errors.New("unsupported driver")
	// ErrRegistered registered
	ErrRegistered = errors.New("registered")
	// ErrInvalidField invalid field
	ErrInvalidField = errors.New("invalid field")

View on GitHub (pinned to 1d6ce99528)

Solutions

  1. Add a WHERE clause to the update/delete, e.g. db.Where("id = ?", id).Delete(&User{}).
  2. If a global update/delete is intended, enable it explicitly with db.Session(&gorm.Session{AllowGlobalUpdate: true}).
  3. Verify the model's primary key is set before calling Save/Delete so GORM can build the condition.

Example fix

Always provide conditions or explicitly allow global updates: db.Where("id = ?", id).Delete(&User{}) // or db.AllowGlobalUpdate(true)

When it happens

Trigger: Thrown at errors.go:17 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of go-gorm/gorm@1d6ce99528 (2026-08-15). Data as JSON: /api/errors/6ca34b69134b80dd. Report an issue: GitHub.