Date: Thu, 28 Mar 2024 18:59:28 +0800 (CST) Message-ID: <2025824171.3605.1711623568709@localhost.localdomain> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_3604_1041669891.1711623568709" ------=_Part_3604_1041669891.1711623568709 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
Insert/Replace/Save
=E8=BF=99=E5=87=A0=E4=B8=AA=E9=93=BE=E5=BC=8F=E6=93=8D=E4=BD=9C=E6=96=B9= =E6=B3=95=E7=94=A8=E4=BA=8E=E6=95=B0=E6=8D=AE=E7=9A=84=E5=86=99=E5=85=A5=EF= =BC=8C=E5=B9=B6=E4=B8=94=E6=94=AF=E6=8C=81=E8=87=AA=E5=8A=A8=E7=9A=84=E5=8D= =95=E6=9D=A1=E6=88=96=E8=80=85=E6=89=B9=E9=87=8F=E7=9A=84=E6=95=B0=E6=8D=AE= =E5=86=99=E5=85=A5=EF=BC=8C=E5=8C=BA=E5=88=AB=E5=A6=82=E4=B8=8B=EF=BC=9A
Insert
=E4=BD=BF=E7=94=A8INSERT INTO
=
=E8=AF=AD=E5=8F=A5=E8=BF=9B=E8=A1=8C=E6=95=B0=E6=8D=AE=E5=BA=93=E5=86=99=E5=
=85=A5=EF=BC=8C=E5=A6=82=E6=9E=9C=E5=86=99=E5=85=A5=E7=9A=84=E6=95=B0=E6=8D=
=AE=E4=B8=AD=E5=AD=98=E5=9C=A8=E4=B8=BB=E9=94=AE=E6=88=96=E8=80=85=E5=94=AF=
=E4=B8=80=E7=B4=A2=E5=BC=95=E6=97=B6=EF=BC=8C=E8=BF=94=E5=9B=9E=E5=A4=B1=E8=
=B4=A5=EF=BC=8C=E5=90=A6=E5=88=99=E5=86=99=E5=85=A5=E4=B8=80=E6=9D=A1=E6=96=
=B0=E6=95=B0=E6=8D=AE=E3=80=82
Replace
=E4=BD=BF=E7=94=A8REPLACE INTO=E8=AF=AD=E5=8F=A5=E8=BF=9B=E8=A1=8C=E6=95=B0=E6=8D=AE=E5=BA=93=E5=86=99=
=E5=85=A5=EF=BC=8C=E5=A6=82=E6=9E=9C=E5=86=99=E5=85=A5=E7=9A=84=E6=95=B0=E6=
=8D=AE=E4=B8=AD=E5=AD=98=E5=9C=A8=E4=B8=BB=E9=94=AE=E6=88=96=E8=80=85=E5=94=
=AF=E4=B8=80=E7=B4=A2=E5=BC=95=E6=97=B6=EF=BC=8C=E4=BC=9A=E5=88=A0=E9=99=A4=
=E5=8E=9F=E6=9C=89=E7=9A=84=E8=AE=B0=E5=BD=95=EF=BC=8C=E5=BF=85=E5=AE=9A=E4=
=BC=9A=E5=86=99=E5=85=A5=E4=B8=80=E6=9D=A1=E6=96=B0=E8=AE=B0=E5=BD=95=E3=80=
=82
Save
=E4=BD=BF=E7=94=A8INSERT INTO
=
=E8=AF=AD=E5=8F=A5=E8=BF=9B=E8=A1=8C=E6=95=B0=E6=8D=AE=E5=BA=93=E5=86=99=E5=
=85=A5=EF=BC=8C=E5=A6=82=E6=9E=9C=E5=86=99=E5=85=A5=E7=9A=84=E6=95=B0=E6=8D=
=AE=E4=B8=AD=E5=AD=98=E5=9C=A8=E4=B8=BB=E9=94=AE=E6=88=96=E8=80=85=E5=94=AF=
=E4=B8=80=E7=B4=A2=E5=BC=95=E6=97=B6=EF=BC=8C=E6=9B=B4=E6=96=B0=E5=8E=9F=E6=
=9C=89=E6=95=B0=E6=8D=AE=EF=BC=8C=E5=90=A6=E5=88=99=E5=86=99=E5=85=A5=E4=B8=
=80=E6=9D=A1=E6=96=B0=E6=95=B0=E6=8D=AE=E3=80=82=E5=AF=B9=E4=BA=8E=E9=83=A8=
=E5=88=86=E6=95=B0=E6=8D=AE=E5=BA=93=EF=BC=8C=E4=BE=8B=E5=A6=82 PgSQL=
, SQL server, Oracle
=E5=8F=AF=E4=BB=A5=E4=BD=BF=E7=94=A8 OnCo=
nflict
=E6=96=B9=E6=B3=95=E6=8C=87=E5=AE=9A=E5=86=B2=E7=AA=81=E9=94=
=AE=E3=80=82
db.Model(table).Data(g.Map{ =09"id": 1, =09"passport": "p1", =09"password": "pw1", }).OnConflict("id").Save()
=E5=9C=A8=E9=83=A8=E5=88=86=E6=95=B0=E6=8D=AE=E5=BA=93=E7=B1=BB=E5=9E=8B= =E4=B8=AD=EF=BC=8C=E5=B9=B6=E4=B8=8D=E6=94=AF=E6=8C=81
Replace/Save=E6=96=B9=E6=B3=95=EF=BC=8C=E5=85=B7=E4=BD=93=E8=AF=B7=E5=8F=82=E8=80= =83=E9=93=BE=E5=BC=8F=E6=93=8D=E4=BD=9C=E4=BB=8B=E7=BB=8D= =E7=AB=A0=E8=8A=82=E3=80=82
=E8=BF=99=E5=87=A0=E4=B8=AA=E6=96=B9=E6=B3=95=E9=9C=80=E8=A6=81=E7=BB=93=
=E5=90=88Data
=E6=96=B9=E6=B3=95=E4=BD=BF=E7=94=A8=EF=BC=8C=E8=
=AF=A5=E6=96=B9=E6=B3=95=E7=94=A8=E4=BA=8E=E4=BC=A0=E9=80=92=E6=95=B0=E6=8D=
=AE=E5=8F=82=E6=95=B0=EF=BC=8C=E7=94=A8=E4=BA=8E=E6=95=B0=E6=8D=AE=E5=86=99=
=E5=85=A5/=E6=9B=B4=E6=96=B0=E7=AD=89=E5=86=99=E6=93=8D=E4=BD=9C=E3=80=82=
p>
InsertIgnore
=E7=94=A8=E4=BA=8E=E5=86=99=E5=85=A5=E6=95=B0=E6=8D=AE=E6=97=B6=E5=A6=82= =E6=9E=9C=E5=86=99=E5=85=A5=E7=9A=84=E6=95=B0=E6=8D=AE=E4=B8=AD=E5=AD=98=E5= =9C=A8=E4=B8=BB=E9=94=AE=E6=88=96=E8=80=85=E5=94=AF=E4=B8=80=E7=B4=A2=E5=BC= =95=E6=97=B6=EF=BC=8C=E5=BF=BD=E7=95=A5=E9=94=99=E8=AF=AF=E7=BB=A7=E7=BB=AD= =E6=89=A7=E8=A1=8C=E5=86=99=E5=85=A5=E3=80=82=E8=AF=A5=E6=96=B9=E6=B3=95=E5= =AE=9A=E4=B9=89=E5=A6=82=E4=B8=8B=EF=BC=9A
func (m *Model) InsertIgnore(dat= a ...interface{}) (result sql.Result, err error)
InsertAndGetId
=E7=94=A8=E4=BA=8E=E5=86=99=E5=85=A5=E6=95=B0=E6=8D=AE=E6=97=B6=E5=B9=B6=
=E7=9B=B4=E6=8E=A5=E8=BF=94=E5=9B=9E=E8=87=AA=E5=A2=9E=E5=AD=97=E6=AE=B5=E7=
=9A=84ID
=E3=80=82=E8=AF=A5=E6=96=B9=E6=B3=95=E5=AE=9A=E4=B9=89=
=E5=A6=82=E4=B8=8B=EF=BC=9A
func (m *Model) InsertAndGetId(d= ata ...interface{}) (lastInsertId int64, err error)
OnDuplicate/OnDuplicateEx
OnDuplicate/OnDuplicateEx
=E6=96=B9=E6=B3=95=E9=9C=80=E8=A6=
=81=E7=BB=93=E5=90=88Save
=E6=96=B9=E6=B3=95=E4=B8=80=E8=B5=B7=
=E4=BD=BF=E7=94=A8=EF=BC=8C=E7=94=A8=E4=BA=8E=E6=8C=87=E5=AE=9ASave=
code>=E6=96=B9=E6=B3=95=E7=9A=84=E6=9B=B4=E6=96=B0/=E4=B8=8D=E6=9B=B4=E6=96=
=B0=E5=AD=97=E6=AE=B5=EF=BC=8C=E5=8F=82=E6=95=B0=E4=B8=BA=E5=AD=97=E7=AC=A6=
=E4=B8=B2=E3=80=81=E5=AD=97=E7=AC=A6=E4=B8=B2=E6=95=B0=E7=BB=84=E3=80=81
=E3=80=82=E4=BE=8B=E5=A6=82=EF=BC=9A
OnDuplicate("nickname, age") OnDuplicate("nickname", "age") OnDuplicate(g.Map{ "nickname": gdb.Raw("CONCAT('name_', VALUES(`nickname`))"), }) OnDuplicate(g.Map{ "nickname": "passport", })
=E5=85=B6=E4=B8=ADOnDuplicateEx
=E7=94=A8=E4=BA=8E=E6=8E=92=
=E9=99=A4=E6=8C=87=E5=AE=9A=E5=BF=BD=E7=95=A5=E6=9B=B4=E6=96=B0=E7=9A=84=E5=
=AD=97=E6=AE=B5=EF=BC=8C=E6=8E=92=E9=99=A4=E7=9A=84=E5=AD=97=E6=AE=B5=E9=9C=
=80=E8=A6=81=E5=9C=A8=E5=86=99=E5=85=A5=E7=9A=84=E6=95=B0=E6=8D=AE=E9=9B=86=
=E5=90=88=E4=B8=AD=E3=80=82
=E6=95=B0=E6=8D=AE=E5=86=99=E5=85=A5/=E4=BF=9D=E5=AD=98=E6=96=B9=E6=B3=
=95=E9=9C=80=E8=A6=81=E7=BB=93=E5=90=88Data
=E6=96=B9=E6=B3=95=
=E4=BD=BF=E7=94=A8=EF=BC=8C=E6=96=B9=E6=B3=95=E7=9A=84=E5=8F=82=E6=95=B0=E7=
=B1=BB=E5=9E=8B=E5=8F=AF=E4=BB=A5=E4=B8=BAMap/Struct/Slice
=EF=
=BC=9A
// INSERT INTO `user`(`name`) VA= LUES('john') g.Model("user").Data(g.Map{"name": "john"}).Insert() // INSERT IGNORE INTO `user`(`uid`,`name`) VALUES(10000,'john') g.Model("user").Data(g.Map{"uid": 10000, "name": "john"}).InsertIgnore() // REPLACE INTO `user`(`uid`,`name`) VALUES(10000,'john') g.Model("user").Data(g.Map{"uid": 10000, "name": "john"}).Replace() // INSERT INTO `user`(`uid`,`name`) VALUES(10001,'john') ON DUPLICATE KEY U= PDATE `uid`=3DVALUES(`uid`),`name`=3DVALUES(`name`) g.Model("user").Data(g.Map{"uid": 10001, "name": "john"}).Save()
=E4=B9=9F=E5=8F=AF=E4=BB=A5=E4=B8=8D=E4=BD=BF=E7=94=A8Data
=
=E6=96=B9=E6=B3=95=EF=BC=8C=E8=80=8C=E7=BB=99=E5=86=99=E5=85=A5/=E4=BF=9D=
=E5=AD=98=E6=96=B9=E6=B3=95=E7=9B=B4=E6=8E=A5=E4=BC=A0=E9=80=92=E6=95=B0=E6=
=8D=AE=E5=8F=82=E6=95=B0=EF=BC=9A
g.Model("user").Insert(g.Map{"na= me": "john"}) g.Model("user").Replace(g.Map{"uid": 10000, "name": "john"}) g.Model("user").Save(g.Map{"uid": 10001, "name": "john"})
=E6=95=B0=E6=8D=AE=E5=8F=82=E6=95=B0=E4=B9=9F=E5=B8=B8=E7=
=94=A8 struct
=E7=B1=
=BB=E5=9E=8B=EF=BC=8C=E4=BE=8B=E5=A6=82=E5=BD=93=E8=A1=A8=E5=AD=97=E6=AE=B5=
=E4=B8=BA uid/name/site
=E6=97=B6=EF=BC=9A
type User struct { Uid int `orm:"uid"` Name string `orm:"name"` Site string `orm:"site"` } user :=3D &User{ Uid: 1, Name: "john", Site: "https://goframe.org", } // INSERT INTO `user`(`uid`,`name`,`site`) VALUES(1,'john','https://goframe= .org') g.Model("user").Data(user).Insert()
=E9=80=9A=E8=BF=87=E7=BB=99Data
=E6=96=B9=E6=B3=95=E8=BE=93=
=E5=85=A5Slice
=E6=95=B0=E7=BB=84=E7=B1=BB=E5=9E=8B=E7=9A=84=E5=
=8F=82=E6=95=B0=EF=BC=8C=E7=94=A8=E4=BB=A5=E5=AE=9E=E7=8E=B0=E6=89=B9=E9=87=
=8F=E5=86=99=E5=85=A5=E3=80=82=E6=95=B0=E7=BB=84=E5=85=83=E7=B4=A0=E9=9C=80=
=E8=A6=81=E4=B8=BAMap
=E6=88=96=E8=80=85Struct
=E7=
=B1=BB=E5=9E=8B=EF=BC=8C=E4=BB=A5=E4=BE=BF=E4=BA=8E=E6=95=B0=E6=8D=AE=E5=BA=
=93=E7=BB=84=E4=BB=B6=E8=87=AA=E5=8A=A8=E8=8E=B7=E5=8F=96=E5=AD=97=E6=AE=B5=
=E4=BF=A1=E6=81=AF=E5=B9=B6=E7=94=9F=E6=88=90=E6=89=B9=E9=87=8F=E6=93=8D=E4=
=BD=9CSQL
=E3=80=82
// INSERT INTO `user`(`name`) VA= LUES('john_1'),('john_2'),('john_3') g.Model("user").Data(g.List{ {"name": "john_1"}, {"name": "john_2"}, {"name": "john_3"}, }).Insert()
=E5=8F=AF=E4=BB=A5=E9=80=9A=E8=BF=87Batch
=E6=96=B9=E6=B3=95=
=E6=8C=87=E5=AE=9A=E6=89=B9=E9=87=8F=E6=93=8D=E4=BD=9C=E4=B8=AD=E5=88=86=E6=
=89=B9=E5=86=99=E5=85=A5=E6=9D=A1=E6=95=B0=E6=95=B0=E9=87=8F=EF=BC=88=E9=BB=
=98=E8=AE=A4=E6=98=AF10
=EF=BC=89=EF=BC=8C=E4=BB=A5=E4=B8=8B=E7=
=A4=BA=E4=BE=8B=E5=B0=86=E4=BC=9A=E8=A2=AB=E6=8B=86=E5=88=86=E4=B8=BA=E4=B8=
=A4=E6=9D=A1=E5=86=99=E5=85=A5=E8=AF=B7=E6=B1=82=EF=BC=9A
// INSERT INTO `user`(`name`) VA= LUES('john_1'),('john_2') // INSERT INTO `user`(`name`) VALUES('john_3') g.Model("user").Data(g.List{ {"name": "john_1"}, {"name": "john_2"}, {"name": "john_3"}, }).Batch(2).Insert()
=E6=89=B9=E9=87=8F=E4=BF=9D=E5=AD=98=E6=93=8D=E4=BD=9C=E4=B8=8E=E5=8D=95= =E6=9D=A1=E4=BF=9D=E5=AD=98=E6=93=8D=E4=BD=9C=E5=8E=9F=E7=90=86=E6=98=AF=E4= =B8=80=E6=A0=B7=E7=9A=84=EF=BC=8C=E5=BD=93=E5=86=99=E5=85=A5=E7=9A=84=E6=95= =B0=E6=8D=AE=E4=B8=AD=E5=AD=98=E5=9C=A8=E4=B8=BB=E9=94=AE=E6=88=96=E8=80=85= =E5=94=AF=E4=B8=80=E7=B4=A2=E5=BC=95=E6=97=B6=E5=B0=86=E4=BC=9A=E6=9B=B4=E6= =96=B0=E5=8E=9F=E6=9C=89=E8=AE=B0=E5=BD=95=E5=80=BC=EF=BC=8C=E5=90=A6=E5=88= =99=E6=96=B0=E5=86=99=E5=85=A5=E4=B8=80=E6=9D=A1=E8=AE=B0=E5=BD=95=E3=80=82=
// INSERT INTO `user`(`uid`,`nam= e`) VALUES(10000,'john_1'),(10001,'john_2'),(10002,'john_3') // ON DUPLICATE KEY UPDATE `uid`=3DVALUES(`uid`),`name`=3DVALUES(`name`) g.Model("user").Data(g.List{ {"uid":10000, "name": "john_1"}, {"uid":10001, "name": "john_2"}, {"uid":10002, "name": "john_3"}, }).Save()
RawSQL
=E8=AF=AD=E5=8F=A5=E5=B5=8C=E5=85=A5gdb.Raw
=E6=98=AF=E5=AD=97=E7=AC=A6=E4=B8=B2=E7=B1=BB=E5=9E=
=8B=EF=BC=8C=E8=AF=A5=E7=B1=BB=E5=9E=8B=E7=9A=84=E5=8F=82=E6=95=B0=E5=B0=86=
=E4=BC=9A=E7=9B=B4=E6=8E=A5=E4=BD=9C=E4=B8=BASQL
=E7=89=87=E6=
=AE=B5=E5=B5=8C=E5=85=A5=E5=88=B0=E6=8F=90=E4=BA=A4=E5=88=B0=E5=BA=95=E5=B1=
=82=E7=9A=84SQL
=E8=AF=AD=E5=8F=A5=E4=B8=AD=EF=BC=8C=E4=B8=8D=
=E4=BC=9A=E8=A2=AB=E8=87=AA=E5=8A=A8=E8=BD=AC=E6=8D=A2=E4=B8=BA=E5=AD=97=E7=
=AC=A6=E4=B8=B2=E5=8F=82=E6=95=B0=E7=B1=BB=E5=9E=8B=E3=80=81=E4=B9=9F=E4=B8=
=8D=E4=BC=9A=E8=A2=AB=E5=BD=93=E5=81=9A=E9=A2=84=E5=A4=84=E7=90=86=E5=8F=82=
=E6=95=B0=E3=80=82=E6=9B=B4=E8=AF=A6=E7=BB=86=E7=9A=84=E4=BB=8B=E7=BB=8D=E8=
=AF=B7=E5=8F=82=E8=80=83=E7=AB=A0=E8=8A=82=EF=BC=9AORM=E9=AB=98=E7=BA=A7=E7=89=B9=E6=80=A7-RawSQ=
L=E3=80=82=E4=BE=8B=E5=A6=82=EF=BC=9A
// INSERT INTO `user`(`id`,`pass= port`,`password`,`nickname`,`create_time`) VALUES('id+2','john','123456','n= ow()') g.Model("user").Data(g.Map{ =09"id": "id+2", =09"passport": "john", =09"password": "123456", =09"nickname": "JohnGuo", =09"create_time": "now()", }).Insert() // =E6=89=A7=E8=A1=8C=E6=8A=A5=E9=94=99=EF=BC=9AError Code: 1136. Column co= unt doesn't match value count at row 1
=E4=BD=BF=E7=94=A8gdb.Raw
=E6=
=94=B9=E9=80=A0=E5=90=8E=EF=BC=9A
// INSERT INTO `user`(`id`,`pass= port`,`password`,`nickname`,`create_time`) VALUES(id+2,'john','123456',now(= )) g.Model("user").Data(g.Map{ =09"id": gdb.Raw("id+2"), =09"passport": "john", =09"password": "123456", =09"nickname": "JohnGuo", =09"create_time": gdb.Raw("now()"), }).Insert()