Maison >développement back-end >Golang >Comment gérer les valeurs temporelles nullables dans les structures de base de données Go ?
Gestion des valeurs temporelles nullables
Lorsque vous travaillez avec des colonnes de base de données nullables dans Go, vous pouvez rencontrer le défi de les représenter dans vos structures. Considérons une structure comme la suivante :
type Reminder struct { Id int CreatedAt time.Time RemindedAt *time.Time SenderId int ReceiverId int }
Ici, le champ ReendedAt est marqué comme un pointeur pour accueillir les valeurs nullables. Cependant, cela introduit la nécessité de faire la distinction entre CreatedAt et RemendedAt dans votre code.
Une solution plus élégante consiste à utiliser des types spécialisés qui gèrent les valeurs nullables. La bibliothèque pq fournit pq.NullTime à cet effet, et la bibliothèque standard de Go 1.13 a introduit sql.NullTime.
En utilisant pq.NullTime, vous pouvez définir votre structure comme :
import ( "time" "github.com/lib/pq" ) type Reminder struct { Id int CreatedAt time.Time RemindedAt pq.NullTime SenderId int ReceiverId int }
Cela vous permet de travailler de manière transparente avec des valeurs nullables sans avoir besoin d'une gestion explicite du pointeur. Le type pq.NullTime implémente les interfaces Scanner et Valuer, lui permettant d'être utilisé avec des opérations de base de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!