MCPcopy Create free account
hub / github.com/go-pg/pg / Insert

Method Insert

orm/query.go:1026–1058  ·  view source on GitHub ↗

Insert inserts the model.

(values ...interface{})

Source from the content-addressed store, hash-verified

1024
1025// Insert inserts the model.
1026func (q *Query) Insert(values ...interface{}) (Result, error) {
1027 if q.stickyErr != nil {
1028 return nil, q.stickyErr
1029 }
1030
1031 model, err := q.newModel(values)
1032 if err != nil {
1033 return nil, err
1034 }
1035
1036 ctx := q.ctx
1037
1038 if q.tableModel != nil && q.tableModel.Table().hasFlag(beforeInsertHookFlag) {
1039 ctx, err = q.tableModel.BeforeInsert(ctx)
1040 if err != nil {
1041 return nil, err
1042 }
1043 }
1044
1045 query := NewInsertQuery(q)
1046 res, err := q.returningQuery(ctx, model, query)
1047 if err != nil {
1048 return nil, err
1049 }
1050
1051 if q.tableModel != nil {
1052 if err := q.tableModel.AfterInsert(ctx); err != nil {
1053 return nil, err
1054 }
1055 }
1056
1057 return res, nil
1058}
1059
1060// SelectOrInsert selects the model inserting one if it does not exist.
1061// It returns true when model was inserted.

Callers 15

SelectOrInsertMethod · 0.95
hook_test.goFile · 0.80
_seedDBFunction · 0.80
modelDBFunction · 0.80
ExampleDB_Model_insertFunction · 0.80

Calls 7

newModelMethod · 0.95
returningQueryMethod · 0.95
NewInsertQueryFunction · 0.85
TableMethod · 0.65
BeforeInsertMethod · 0.65
AfterInsertMethod · 0.65
hasFlagMethod · 0.45