@maiyunnet/kebab 9.7.1 → 9.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/doc/kebab-rag.md CHANGED
@@ -1360,7 +1360,7 @@ index/variables/VER.md
1360
1360
 
1361
1361
  # Variable: VER
1362
1362
 
1363
- > `const` **VER**: `"9.7.1"` = `'9.7.1'`
1363
+ > `const` **VER**: `"9.7.3"` = `'9.7.3'`
1364
1364
 
1365
1365
  Defined in: [index.ts:10](https://github.com/maiyunnet/kebab/blob/master/index.ts#L10)
1366
1366
 
@@ -13675,7 +13675,7 @@ Defined in: [lib/sql.ts:69](https://github.com/maiyunnet/kebab/blob/master/lib/s
13675
13675
 
13676
13676
  > **append**(`sql`): `this`
13677
13677
 
13678
- Defined in: [lib/sql.ts:1003](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L1003)
13678
+ Defined in: [lib/sql.ts:1005](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L1005)
13679
13679
 
13680
13680
  在 sql 最后追加字符串
13681
13681
 
@@ -13695,7 +13695,7 @@ Defined in: [lib/sql.ts:1003](https://github.com/maiyunnet/kebab/blob/master/lib
13695
13695
 
13696
13696
  > **by**(`c`, `d?`): `this`
13697
13697
 
13698
- Defined in: [lib/sql.ts:759](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L759)
13698
+ Defined in: [lib/sql.ts:761](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L761)
13699
13699
 
13700
13700
  ORDER BY
13701
13701
 
@@ -13723,7 +13723,7 @@ ORDER BY
13723
13723
 
13724
13724
  > **copy**(`f?`, `opt?`): `Sql`
13725
13725
 
13726
- Defined in: [lib/sql.ts:827](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L827)
13726
+ Defined in: [lib/sql.ts:829](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L829)
13727
13727
 
13728
13728
  创建一个本对象的一个新的 sql 对象拷贝
13729
13729
 
@@ -13751,7 +13751,7 @@ Defined in: [lib/sql.ts:827](https://github.com/maiyunnet/kebab/blob/master/lib/
13751
13751
 
13752
13752
  > **crossJoin**(`f`, `s?`, `suf?`, `pre?`): `this`
13753
13753
 
13754
- Defined in: [lib/sql.ts:488](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L488)
13754
+ Defined in: [lib/sql.ts:490](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L490)
13755
13755
 
13756
13756
  cross join 方法
13757
13757
 
@@ -13791,7 +13791,7 @@ MySQL 时为表前缀,PostgreSQL 时为 Schema 名,仅在 join 非默认前
13791
13791
 
13792
13792
  > **delete**(`f`): `this`
13793
13793
 
13794
- Defined in: [lib/sql.ts:376](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L376)
13794
+ Defined in: [lib/sql.ts:378](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L378)
13795
13795
 
13796
13796
  'xx'
13797
13797
 
@@ -13813,7 +13813,7 @@ Defined in: [lib/sql.ts:376](https://github.com/maiyunnet/kebab/blob/master/lib/
13813
13813
 
13814
13814
  > **field**(`str`, `pre?`, `suf?`): `string`
13815
13815
 
13816
- Defined in: [lib/sql.ts:1014](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L1014)
13816
+ Defined in: [lib/sql.ts:1016](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L1016)
13817
13817
 
13818
13818
  对字段进行包裹
13819
13819
 
@@ -13845,7 +13845,7 @@ MySQL 时为表前缀,PostgreSQL 时为 Schema 名,仅请在 field 表名时
13845
13845
 
13846
13846
  > **format**(`sql?`, `data?`): `string`
13847
13847
 
13848
- Defined in: [lib/sql.ts:993](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L993)
13848
+ Defined in: [lib/sql.ts:995](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L995)
13849
13849
 
13850
13850
  获取带 data 的 sql 语句
13851
13851
 
@@ -13869,7 +13869,7 @@ Defined in: [lib/sql.ts:993](https://github.com/maiyunnet/kebab/blob/master/lib/
13869
13869
 
13870
13870
  > **fullJoin**(`f`, `s?`, `suf?`, `pre?`): `this`
13871
13871
 
13872
- Defined in: [lib/sql.ts:477](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L477)
13872
+ Defined in: [lib/sql.ts:479](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L479)
13873
13873
 
13874
13874
  full join 方法
13875
13875
 
@@ -13909,7 +13909,7 @@ MySQL 时为表前缀,PostgreSQL 时为 Schema 名,仅在 join 非默认前
13909
13909
 
13910
13910
  > **getData**(): [`DbValue`](../../../index/type-aliases/DbValue.md)[]
13911
13911
 
13912
- Defined in: [lib/sql.ts:977](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L977)
13912
+ Defined in: [lib/sql.ts:979](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L979)
13913
13913
 
13914
13914
  获取全部 data
13915
13915
 
@@ -13923,7 +13923,7 @@ Defined in: [lib/sql.ts:977](https://github.com/maiyunnet/kebab/blob/master/lib/
13923
13923
 
13924
13924
  > **getPre**(): `string`
13925
13925
 
13926
- Defined in: [lib/sql.ts:984](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L984)
13926
+ Defined in: [lib/sql.ts:986](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L986)
13927
13927
 
13928
13928
  获取定义的 pre
13929
13929
 
@@ -13937,7 +13937,7 @@ Defined in: [lib/sql.ts:984](https://github.com/maiyunnet/kebab/blob/master/lib/
13937
13937
 
13938
13938
  > **getSql**(): `string`
13939
13939
 
13940
- Defined in: [lib/sql.ts:961](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L961)
13940
+ Defined in: [lib/sql.ts:963](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L963)
13941
13941
 
13942
13942
  获取 sql 语句
13943
13943
 
@@ -13951,7 +13951,7 @@ Defined in: [lib/sql.ts:961](https://github.com/maiyunnet/kebab/blob/master/lib/
13951
13951
 
13952
13952
  > **group**(`c`): `this`
13953
13953
 
13954
- Defined in: [lib/sql.ts:783](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L783)
13954
+ Defined in: [lib/sql.ts:785](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L785)
13955
13955
 
13956
13956
  GROUP BY
13957
13957
 
@@ -13973,7 +13973,7 @@ GROUP BY
13973
13973
 
13974
13974
  > **having**(`s?`): `this`
13975
13975
 
13976
- Defined in: [lib/sql.ts:495](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L495)
13976
+ Defined in: [lib/sql.ts:497](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L497)
13977
13977
 
13978
13978
  having 后置筛选器,用法类似 where
13979
13979
 
@@ -13993,7 +13993,7 @@ having 后置筛选器,用法类似 where
13993
13993
 
13994
13994
  > **innerJoin**(`f`, `s?`, `suf?`, `pre?`): `this`
13995
13995
 
13996
- Defined in: [lib/sql.ts:466](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L466)
13996
+ Defined in: [lib/sql.ts:468](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L468)
13997
13997
 
13998
13998
  inner join 方法
13999
13999
 
@@ -14061,7 +14061,7 @@ Defined in: [lib/sql.ts:99](https://github.com/maiyunnet/kebab/blob/master/lib/s
14061
14061
 
14062
14062
  > **join**(`f`, `s?`, `type?`, `suf?`, `pre?`): `this`
14063
14063
 
14064
- Defined in: [lib/sql.ts:418](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L418)
14064
+ Defined in: [lib/sql.ts:420](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L420)
14065
14065
 
14066
14066
  join 方法
14067
14067
 
@@ -14107,7 +14107,7 @@ MySQL 时为表前缀,PostgreSQL 时为 Schema 名,仅在 join 非默认前
14107
14107
 
14108
14108
  > **leftJoin**(`f`, `s?`, `suf?`, `pre?`): `this`
14109
14109
 
14110
- Defined in: [lib/sql.ts:444](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L444)
14110
+ Defined in: [lib/sql.ts:446](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L446)
14111
14111
 
14112
14112
  left join 方法
14113
14113
 
@@ -14147,7 +14147,7 @@ MySQL 时为表前缀,PostgreSQL 时为 Schema 名,仅在 join 非默认前
14147
14147
 
14148
14148
  > **limit**(`a`, `b?`): `this`
14149
14149
 
14150
- Defined in: [lib/sql.ts:803](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L803)
14150
+ Defined in: [lib/sql.ts:805](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L805)
14151
14151
 
14152
14152
  LIMIT(limit、offset, limit)
14153
14153
 
@@ -14175,7 +14175,7 @@ LIMIT(limit、offset, limit)
14175
14175
 
14176
14176
  > **lock**(): `this`
14177
14177
 
14178
- Defined in: [lib/sql.ts:818](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L818)
14178
+ Defined in: [lib/sql.ts:820](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L820)
14179
14179
 
14180
14180
  追加消极锁,通常不建议使用
14181
14181
 
@@ -14189,7 +14189,7 @@ Defined in: [lib/sql.ts:818](https://github.com/maiyunnet/kebab/blob/master/lib/
14189
14189
 
14190
14190
  > **rightJoin**(`f`, `s?`, `suf?`, `pre?`): `this`
14191
14191
 
14192
- Defined in: [lib/sql.ts:455](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L455)
14192
+ Defined in: [lib/sql.ts:457](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L457)
14193
14193
 
14194
14194
  right join 方法
14195
14195
 
@@ -14229,7 +14229,7 @@ MySQL 时为表前缀,PostgreSQL 时为 Schema 名,仅在 join 非默认前
14229
14229
 
14230
14230
  > **select**(`c`, `f`): `this`
14231
14231
 
14232
- Defined in: [lib/sql.ts:267](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L267)
14232
+ Defined in: [lib/sql.ts:269](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L269)
14233
14233
 
14234
14234
  '*', 'xx'
14235
14235
 
@@ -14257,7 +14257,7 @@ Defined in: [lib/sql.ts:267](https://github.com/maiyunnet/kebab/blob/master/lib/
14257
14257
 
14258
14258
  > **union**(`lsql`, `type?`): `this`
14259
14259
 
14260
- Defined in: [lib/sql.ts:388](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L388)
14260
+ Defined in: [lib/sql.ts:390](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L390)
14261
14261
 
14262
14262
  联查另一个 sql 对象
14263
14263
 
@@ -14285,7 +14285,7 @@ sql 对象
14285
14285
 
14286
14286
  > **unionAll**(`lsql`): `this`
14287
14287
 
14288
- Defined in: [lib/sql.ts:406](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L406)
14288
+ Defined in: [lib/sql.ts:408](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L408)
14289
14289
 
14290
14290
  所有联查另一个 sql 对象
14291
14291
 
@@ -14307,7 +14307,7 @@ sql 对象
14307
14307
 
14308
14308
  > **update**(`f`, `s`): `this`
14309
14309
 
14310
- Defined in: [lib/sql.ts:308](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L308)
14310
+ Defined in: [lib/sql.ts:310](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L310)
14311
14311
 
14312
14312
  UPDATE SQL 方法
14313
14313
 
@@ -14335,7 +14335,7 @@ UPDATE SQL 方法
14335
14335
 
14336
14336
  > **updateByValues**(`table`, `key`, `cols`, `rows`): `this`
14337
14337
 
14338
- Defined in: [lib/sql.ts:214](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L214)
14338
+ Defined in: [lib/sql.ts:215](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L215)
14339
14339
 
14340
14340
  批量 UPDATE,以子查询作为数据源,纯更新语义(不会插入新行)
14341
14341
  MySQL: UPDATE t INNER JOIN (SELECT col AS alias ... UNION ALL SELECT ...) AS tmp ON t.key=tmp.key SET t.c=tmp.c
@@ -14353,7 +14353,8 @@ PostgreSQL: UPDATE t SET c=tmp.c FROM (VALUES ($1,...)) AS tmp(cols) WHERE t.key
14353
14353
 
14354
14354
  `string`
14355
14355
 
14356
- 用于定位的主键/唯一键字段名
14356
+ 用于定位待更新记录的字段名,通常为主键或唯一键,至少必须建立索引;
14357
+ 该参数是字段名而不是索引名,仅参与 ON / WHERE 匹配,不会被更新
14357
14358
 
14358
14359
  ##### cols
14359
14360
 
@@ -14433,7 +14434,7 @@ Defined in: [lib/sql.ts:118](https://github.com/maiyunnet/kebab/blob/master/lib/
14433
14434
 
14434
14435
  > **where**(`s`): `this`
14435
14436
 
14436
- Defined in: [lib/sql.ts:529](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L529)
14437
+ Defined in: [lib/sql.ts:531](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L531)
14437
14438
 
14438
14439
  筛选器
14439
14440
  1. 'city': 'bj', 'type': '2'
@@ -14576,7 +14577,7 @@ lib/sql/functions/aoMix.md
14576
14577
 
14577
14578
  > **aoMix**(`arr`): `Record`\<`string`, `string` \| `number` \| [`Json`](../../../index/type-aliases/Json.md)\>
14578
14579
 
14579
- Defined in: [lib/sql.ts:1399](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L1399)
14580
+ Defined in: [lib/sql.ts:1401](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L1401)
14580
14581
 
14581
14582
  将数组兑换为组合的对象(Array/Object mix)
14582
14583
 
@@ -14605,7 +14606,7 @@ lib/sql/functions/column.md
14605
14606
 
14606
14607
  > **column**(`field`): `object`
14607
14608
 
14608
- Defined in: [lib/sql.ts:1420](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L1420)
14609
+ Defined in: [lib/sql.ts:1422](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L1422)
14609
14610
 
14610
14611
  创建字段对象
14611
14612
 
@@ -14644,7 +14645,7 @@ lib/sql/functions/format.md
14644
14645
 
14645
14646
  > **format**(`sql`, `data`, `service?`): `string`
14646
14647
 
14647
- Defined in: [lib/sql.ts:1361](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L1361)
14648
+ Defined in: [lib/sql.ts:1363](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L1363)
14648
14649
 
14649
14650
  返回代入后的完整 SQL 字符串,这并不安全不能直接执行,只是用来调试打印 sql 语句
14650
14651
 
@@ -14685,7 +14686,7 @@ lib/sql/functions/get.md
14685
14686
 
14686
14687
  > **get**(`opt`): [`Sql`](../classes/Sql.md)
14687
14688
 
14688
- Defined in: [lib/sql.ts:1333](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L1333)
14689
+ Defined in: [lib/sql.ts:1335](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L1335)
14689
14690
 
14690
14691
  创建 sql 对象
14691
14692
 
@@ -14738,7 +14739,7 @@ lib/sql/functions/json.md
14738
14739
 
14739
14740
  > **json**(`obj`): `any`
14740
14741
 
14741
- Defined in: [lib/sql.ts:1458](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L1458)
14742
+ Defined in: [lib/sql.ts:1460](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L1460)
14742
14743
 
14743
14744
  将对象转换为 JSON 字符串并避开类型检查,用于适配 PostgreSQL 的 jsonb 字段
14744
14745
 
@@ -14767,7 +14768,7 @@ lib/sql/functions/value.md
14767
14768
 
14768
14769
  > **value**(`val`): `object`
14769
14770
 
14770
- Defined in: [lib/sql.ts:1439](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L1439)
14771
+ Defined in: [lib/sql.ts:1441](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L1441)
14771
14772
 
14772
14773
  创建字面量值对象,用于 where 条件中 v[0] 需要是值而非字段名的场景
14773
14774
  例:[value('hello'), 'IN', column('tags')]
@@ -23702,7 +23703,7 @@ Defined in: [sys/mod.ts:68](https://github.com/maiyunnet/kebab/blob/master/sys/m
23702
23703
 
23703
23704
  > `protected` **\_keyGenerator**(): `string`
23704
23705
 
23705
- Defined in: [sys/mod.ts:1778](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1778)
23706
+ Defined in: [sys/mod.ts:1785](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1785)
23706
23707
 
23707
23708
  当 _key 不为空时,则依据继承此方法的方法自动生成填充 key
23708
23709
 
@@ -23724,7 +23725,7 @@ Defined in: [sys/mod.ts:1778](https://github.com/maiyunnet/kebab/blob/master/sys
23724
23725
 
23725
23726
  > **all**(): `Promise`\<`false` \| [`Rows`](Rows.md)\<`Mod`\>\>
23726
23727
 
23727
- Defined in: [sys/mod.ts:1120](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1120)
23728
+ Defined in: [sys/mod.ts:1127](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1127)
23728
23729
 
23729
23730
  ##### Returns
23730
23731
 
@@ -23734,7 +23735,7 @@ Defined in: [sys/mod.ts:1120](https://github.com/maiyunnet/kebab/blob/master/sys
23734
23735
 
23735
23736
  > **all**(`key`): `Promise`\<`false` \| `Record`\<`string`, `Mod`\>\>
23736
23737
 
23737
- Defined in: [sys/mod.ts:1121](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1121)
23738
+ Defined in: [sys/mod.ts:1128](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1128)
23738
23739
 
23739
23740
  ##### Parameters
23740
23741
 
@@ -23760,7 +23761,7 @@ Defined in: [sys/mod.ts:1121](https://github.com/maiyunnet/kebab/blob/master/sys
23760
23761
 
23761
23762
  > **allArray**(): `Promise`\<`false` \| `Record`\<`string`, `any`\>[]\>
23762
23763
 
23763
- Defined in: [sys/mod.ts:1299](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1299)
23764
+ Defined in: [sys/mod.ts:1306](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1306)
23764
23765
 
23765
23766
  ##### Returns
23766
23767
 
@@ -23770,7 +23771,7 @@ Defined in: [sys/mod.ts:1299](https://github.com/maiyunnet/kebab/blob/master/sys
23770
23771
 
23771
23772
  > **allArray**(`key`): `Promise`\<`false` \| `Record`\<`string`, `Record`\<`string`, `any`\>\>\>
23772
23773
 
23773
- Defined in: [sys/mod.ts:1300](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1300)
23774
+ Defined in: [sys/mod.ts:1307](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1307)
23774
23775
 
23775
23776
  ##### Parameters
23776
23777
 
@@ -23788,7 +23789,7 @@ Defined in: [sys/mod.ts:1300](https://github.com/maiyunnet/kebab/blob/master/sys
23788
23789
 
23789
23790
  > **append**(`sql`): `this`
23790
23791
 
23791
- Defined in: [sys/mod.ts:1687](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1687)
23792
+ Defined in: [sys/mod.ts:1694](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1694)
23792
23793
 
23793
23794
  在 sql 最后追加字符串
23794
23795
 
@@ -23808,7 +23809,7 @@ Defined in: [sys/mod.ts:1687](https://github.com/maiyunnet/kebab/blob/master/sys
23808
23809
 
23809
23810
  > **by**(`c`, `d?`): `this`
23810
23811
 
23811
- Defined in: [sys/mod.ts:1643](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1643)
23812
+ Defined in: [sys/mod.ts:1650](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1650)
23812
23813
 
23813
23814
  ORDER BY
23814
23815
 
@@ -23836,7 +23837,7 @@ ORDER BY
23836
23837
 
23837
23838
  > **contain**(`contain`): `this`
23838
23839
 
23839
- Defined in: [sys/mod.ts:1696](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1696)
23840
+ Defined in: [sys/mod.ts:1703](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1703)
23840
23841
 
23841
23842
  设置闭包含数据
23842
23843
 
@@ -23864,7 +23865,7 @@ Defined in: [sys/mod.ts:1696](https://github.com/maiyunnet/kebab/blob/master/sys
23864
23865
 
23865
23866
  > **count**(): `Promise`\<`number`\>
23866
23867
 
23867
- Defined in: [sys/mod.ts:1507](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1507)
23868
+ Defined in: [sys/mod.ts:1514](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1514)
23868
23869
 
23869
23870
  根据当前条件,筛选出当前条目该有的数据条数
23870
23871
 
@@ -23878,7 +23879,7 @@ Defined in: [sys/mod.ts:1507](https://github.com/maiyunnet/kebab/blob/master/sys
23878
23879
 
23879
23880
  > **countSql**(): `string`
23880
23881
 
23881
- Defined in: [sys/mod.ts:1528](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1528)
23882
+ Defined in: [sys/mod.ts:1535](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1535)
23882
23883
 
23883
23884
  获取当前条件下的 count 的 SQL 语句
23884
23885
 
@@ -23892,7 +23893,7 @@ Defined in: [sys/mod.ts:1528](https://github.com/maiyunnet/kebab/blob/master/sys
23892
23893
 
23893
23894
  > **create**(): `Promise`\<`boolean` \| `null`\>
23894
23895
 
23895
- Defined in: [sys/mod.ts:814](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L814)
23896
+ Defined in: [sys/mod.ts:821](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L821)
23896
23897
 
23897
23898
  创建数据
23898
23899
 
@@ -23908,7 +23909,7 @@ true-成功,false-报错,null-唯一键非 _$key 键冲突
23908
23909
 
23909
23910
  > **crossJoin**(`f`, `s`, `index?`, `pre?`): `this`
23910
23911
 
23911
- Defined in: [sys/mod.ts:1603](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1603)
23912
+ Defined in: [sys/mod.ts:1610](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1610)
23912
23913
 
23913
23914
  cross join 方法
23914
23915
 
@@ -23956,7 +23957,7 @@ ON 信息
23956
23957
 
23957
23958
  > **explain**(`all?`): `Promise`\<`string` \| `false`\>
23958
23959
 
23959
- Defined in: [sys/mod.ts:1425](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1425)
23960
+ Defined in: [sys/mod.ts:1432](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1432)
23960
23961
 
23961
23962
  ##### Parameters
23962
23963
 
@@ -23972,7 +23973,7 @@ Defined in: [sys/mod.ts:1425](https://github.com/maiyunnet/kebab/blob/master/sys
23972
23973
 
23973
23974
  > **explain**(`all`): `Promise`\<`false` \| `Record`\<`string`, `any`\>\>
23974
23975
 
23975
- Defined in: [sys/mod.ts:1426](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1426)
23976
+ Defined in: [sys/mod.ts:1433](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1433)
23976
23977
 
23977
23978
  ##### Parameters
23978
23979
 
@@ -23990,7 +23991,7 @@ Defined in: [sys/mod.ts:1426](https://github.com/maiyunnet/kebab/blob/master/sys
23990
23991
 
23991
23992
  > **filter**(`s`): `this`
23992
23993
 
23993
- Defined in: [sys/mod.ts:1621](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1621)
23994
+ Defined in: [sys/mod.ts:1628](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1628)
23994
23995
 
23995
23996
  筛选器
23996
23997
 
@@ -24024,7 +24025,7 @@ Defined in: [sys/mod.ts:1621](https://github.com/maiyunnet/kebab/blob/master/sys
24024
24025
 
24025
24026
  > **first**(`lock`, `array`): `Promise`\<`false` \| `Record`\<`string`, `any`\> \| `null`\>
24026
24027
 
24027
- Defined in: [sys/mod.ts:1009](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1009)
24028
+ Defined in: [sys/mod.ts:1016](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1016)
24028
24029
 
24029
24030
  ##### Parameters
24030
24031
 
@@ -24044,7 +24045,7 @@ Defined in: [sys/mod.ts:1009](https://github.com/maiyunnet/kebab/blob/master/sys
24044
24045
 
24045
24046
  > **first**(`lock?`, `array?`): `Promise`\<`false` \| `Mod` & `Record`\<`string`, `any`\> \| `null`\>
24046
24047
 
24047
- Defined in: [sys/mod.ts:1013](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1013)
24048
+ Defined in: [sys/mod.ts:1020](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1020)
24048
24049
 
24049
24050
  ##### Parameters
24050
24051
 
@@ -24066,7 +24067,7 @@ Defined in: [sys/mod.ts:1013](https://github.com/maiyunnet/kebab/blob/master/sys
24066
24067
 
24067
24068
  > **firstArray**(`lock?`): `Promise`\<`false` \| `Record`\<`string`, `any`\> \| `null`\>
24068
24069
 
24069
- Defined in: [sys/mod.ts:1053](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1053)
24070
+ Defined in: [sys/mod.ts:1060](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1060)
24070
24071
 
24071
24072
  获取数据库第一个原生对象
24072
24073
 
@@ -24088,7 +24089,7 @@ Defined in: [sys/mod.ts:1053](https://github.com/maiyunnet/kebab/blob/master/sys
24088
24089
 
24089
24090
  > **format**(`sql?`, `data?`): `string`
24090
24091
 
24091
- Defined in: [sys/mod.ts:1723](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1723)
24092
+ Defined in: [sys/mod.ts:1730](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1730)
24092
24093
 
24093
24094
  获取带 data 的 sql 语句
24094
24095
 
@@ -24116,7 +24117,7 @@ sql 语句
24116
24117
 
24117
24118
  > **fullJoin**(`f`, `s`, `index?`, `pre?`): `this`
24118
24119
 
24119
- Defined in: [sys/mod.ts:1591](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1591)
24120
+ Defined in: [sys/mod.ts:1598](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1598)
24120
24121
 
24121
24122
  full join 方法
24122
24123
 
@@ -24156,7 +24157,7 @@ ON 信息
24156
24157
 
24157
24158
  > **get**(`n`): `any`
24158
24159
 
24159
- Defined in: [sys/mod.ts:806](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L806)
24160
+ Defined in: [sys/mod.ts:813](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L813)
24160
24161
 
24161
24162
  获取一个字段值
24162
24163
 
@@ -24178,7 +24179,7 @@ Defined in: [sys/mod.ts:806](https://github.com/maiyunnet/kebab/blob/master/sys/
24178
24179
 
24179
24180
  > **getData**(): `any`[]
24180
24181
 
24181
- Defined in: [sys/mod.ts:1714](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1714)
24182
+ Defined in: [sys/mod.ts:1721](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1721)
24182
24183
 
24183
24184
  获取全部 data
24184
24185
 
@@ -24192,7 +24193,7 @@ Defined in: [sys/mod.ts:1714](https://github.com/maiyunnet/kebab/blob/master/sys
24192
24193
 
24193
24194
  > **getSql**(): `string`
24194
24195
 
24195
- Defined in: [sys/mod.ts:1707](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1707)
24196
+ Defined in: [sys/mod.ts:1714](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1714)
24196
24197
 
24197
24198
  获取 sql 语句
24198
24199
 
@@ -24206,7 +24207,7 @@ Defined in: [sys/mod.ts:1707](https://github.com/maiyunnet/kebab/blob/master/sys
24206
24207
 
24207
24208
  > **group**(`c`): `this`
24208
24209
 
24209
- Defined in: [sys/mod.ts:1652](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1652)
24210
+ Defined in: [sys/mod.ts:1659](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1659)
24210
24211
 
24211
24212
  GROUP BY
24212
24213
 
@@ -24228,7 +24229,7 @@ GROUP BY
24228
24229
 
24229
24230
  > **having**(`s`): `this`
24230
24231
 
24231
- Defined in: [sys/mod.ts:1612](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1612)
24232
+ Defined in: [sys/mod.ts:1619](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1619)
24232
24233
 
24233
24234
  筛选器
24234
24235
 
@@ -24250,7 +24251,7 @@ Defined in: [sys/mod.ts:1612](https://github.com/maiyunnet/kebab/blob/master/sys
24250
24251
 
24251
24252
  > **innerJoin**(`f`, `s`, `index?`, `pre?`): `this`
24252
24253
 
24253
- Defined in: [sys/mod.ts:1579](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1579)
24254
+ Defined in: [sys/mod.ts:1586](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1586)
24254
24255
 
24255
24256
  inner join 方法
24256
24257
 
@@ -24290,7 +24291,7 @@ ON 信息
24290
24291
 
24291
24292
  > **join**(`f`, `s?`, `type?`, `index?`, `pre?`): `this`
24292
24293
 
24293
- Defined in: [sys/mod.ts:1543](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1543)
24294
+ Defined in: [sys/mod.ts:1550](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1550)
24294
24295
 
24295
24296
  #### Parameters
24296
24297
 
@@ -24334,7 +24335,7 @@ ON 信息
24334
24335
 
24335
24336
  > **langText**(`col`, `lang`): `string`
24336
24337
 
24337
- Defined in: [sys/mod.ts:1758](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1758)
24338
+ Defined in: [sys/mod.ts:1765](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1765)
24338
24339
 
24339
24340
  获取字段的可用语种文本
24340
24341
 
@@ -24362,7 +24363,7 @@ Defined in: [sys/mod.ts:1758](https://github.com/maiyunnet/kebab/blob/master/sys
24362
24363
 
24363
24364
  > **leftJoin**(`f`, `s`, `index?`, `pre?`): `this`
24364
24365
 
24365
- Defined in: [sys/mod.ts:1555](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1555)
24366
+ Defined in: [sys/mod.ts:1562](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1562)
24366
24367
 
24367
24368
  left join 方法
24368
24369
 
@@ -24402,7 +24403,7 @@ ON 信息
24402
24403
 
24403
24404
  > **limit**(`a`, `b?`): `this`
24404
24405
 
24405
- Defined in: [sys/mod.ts:1665](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1665)
24406
+ Defined in: [sys/mod.ts:1672](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1672)
24406
24407
 
24407
24408
  LIMIT
24408
24409
 
@@ -24430,7 +24431,7 @@ LIMIT
24430
24431
 
24431
24432
  > **page**(`count`, `page?`): `this`
24432
24433
 
24433
- Defined in: [sys/mod.ts:1676](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1676)
24434
+ Defined in: [sys/mod.ts:1683](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1683)
24434
24435
 
24435
24436
  分页
24436
24437
 
@@ -24458,7 +24459,7 @@ Defined in: [sys/mod.ts:1676](https://github.com/maiyunnet/kebab/blob/master/sys
24458
24459
 
24459
24460
  > **refresh**(`lock?`): `Promise`\<`boolean` \| `null`\>
24460
24461
 
24461
- Defined in: [sys/mod.ts:934](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L934)
24462
+ Defined in: [sys/mod.ts:941](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L941)
24462
24463
 
24463
24464
  刷新当前模型获取最新数据
24464
24465
 
@@ -24480,7 +24481,7 @@ Defined in: [sys/mod.ts:934](https://github.com/maiyunnet/kebab/blob/master/sys/
24480
24481
 
24481
24482
  > **remove**(): `Promise`\<`boolean`\>
24482
24483
 
24483
- Defined in: [sys/mod.ts:991](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L991)
24484
+ Defined in: [sys/mod.ts:998](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L998)
24484
24485
 
24485
24486
  移除本条目
24486
24487
 
@@ -24494,7 +24495,7 @@ Defined in: [sys/mod.ts:991](https://github.com/maiyunnet/kebab/blob/master/sys/
24494
24495
 
24495
24496
  > **rightJoin**(`f`, `s`, `index?`, `pre?`): `this`
24496
24497
 
24497
- Defined in: [sys/mod.ts:1567](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1567)
24498
+ Defined in: [sys/mod.ts:1574](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1574)
24498
24499
 
24499
24500
  right join 方法
24500
24501
 
@@ -24534,7 +24535,7 @@ ON 信息
24534
24535
 
24535
24536
  > **save**(`where?`): `Promise`\<`boolean`\>
24536
24537
 
24537
- Defined in: [sys/mod.ts:962](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L962)
24538
+ Defined in: [sys/mod.ts:969](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L969)
24538
24539
 
24539
24540
  更新 set 的数据到数据库,有未保存数据时才保存
24540
24541
 
@@ -24568,7 +24569,7 @@ Defined in: [sys/mod.ts:962](https://github.com/maiyunnet/kebab/blob/master/sys/
24568
24569
 
24569
24570
  > **set**\<`T`, `TK`\>(`n`): `void`
24570
24571
 
24571
- Defined in: [sys/mod.ts:767](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L767)
24572
+ Defined in: [sys/mod.ts:774](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L774)
24572
24573
 
24573
24574
  ##### Type Parameters
24574
24575
 
@@ -24594,7 +24595,7 @@ Defined in: [sys/mod.ts:767](https://github.com/maiyunnet/kebab/blob/master/sys/
24594
24595
 
24595
24596
  > **set**\<`T`, `TK`\>(`n`, `v`): `void`
24596
24597
 
24597
- Defined in: [sys/mod.ts:768](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L768)
24598
+ Defined in: [sys/mod.ts:775](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L775)
24598
24599
 
24599
24600
  ##### Type Parameters
24600
24601
 
@@ -24626,7 +24627,7 @@ Defined in: [sys/mod.ts:768](https://github.com/maiyunnet/kebab/blob/master/sys/
24626
24627
 
24627
24628
  > **toArray**\<`TC`\>(): [`TOnlyProperties`](../type-aliases/TOnlyProperties.md)\<`InstanceType`\<`TC`\>\> & `Record`\<`string`, `any`\>
24628
24629
 
24629
- Defined in: [sys/mod.ts:1730](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1730)
24630
+ Defined in: [sys/mod.ts:1737](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1737)
24630
24631
 
24631
24632
  获取值对象,获取的是新创建的数组
24632
24633
 
@@ -24646,7 +24647,7 @@ Defined in: [sys/mod.ts:1730](https://github.com/maiyunnet/kebab/blob/master/sys
24646
24647
 
24647
24648
  > **total**(`f?`): `Promise`\<`number`\>
24648
24649
 
24649
- Defined in: [sys/mod.ts:1483](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1483)
24650
+ Defined in: [sys/mod.ts:1490](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1490)
24650
24651
 
24651
24652
  获取总条数,自动抛弃 LIMIT,仅用于获取数据的情况(select)
24652
24653
 
@@ -24666,7 +24667,7 @@ Defined in: [sys/mod.ts:1483](https://github.com/maiyunnet/kebab/blob/master/sys
24666
24667
 
24667
24668
  > **union**(`f`, `type?`): `this`
24668
24669
 
24669
- Defined in: [sys/mod.ts:1064](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1064)
24670
+ Defined in: [sys/mod.ts:1071](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1071)
24670
24671
 
24671
24672
  联合查询表数据
24672
24673
 
@@ -24694,7 +24695,7 @@ Defined in: [sys/mod.ts:1064](https://github.com/maiyunnet/kebab/blob/master/sys
24694
24695
 
24695
24696
  > **unionAll**(`f`): `this`
24696
24697
 
24697
- Defined in: [sys/mod.ts:1094](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1094)
24698
+ Defined in: [sys/mod.ts:1101](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1101)
24698
24699
 
24699
24700
  所有联合查询表数据
24700
24701
 
@@ -24716,7 +24717,7 @@ Defined in: [sys/mod.ts:1094](https://github.com/maiyunnet/kebab/blob/master/sys
24716
24717
 
24717
24718
  > **unsaved**(): `boolean`
24718
24719
 
24719
- Defined in: [sys/mod.ts:1749](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1749)
24720
+ Defined in: [sys/mod.ts:1756](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1756)
24720
24721
 
24721
24722
  当前是否设置了未保存 --=
24722
24723
 
@@ -24730,7 +24731,7 @@ Defined in: [sys/mod.ts:1749](https://github.com/maiyunnet/kebab/blob/master/sys
24730
24731
 
24731
24732
  > **updates**(): `Record`\<`string`, `any`\>
24732
24733
 
24733
- Defined in: [sys/mod.ts:1738](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1738)
24734
+ Defined in: [sys/mod.ts:1745](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1745)
24734
24735
 
24735
24736
  获取当前设置要提交的数据
24736
24737
 
@@ -24744,7 +24745,7 @@ Defined in: [sys/mod.ts:1738](https://github.com/maiyunnet/kebab/blob/master/sys
24744
24745
 
24745
24746
  > **upsert**(`conflict`): `Promise`\<`boolean`\>
24746
24747
 
24747
- Defined in: [sys/mod.ts:904](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L904)
24748
+ Defined in: [sys/mod.ts:911](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L911)
24748
24749
 
24749
24750
  插入数据,如果存在则更新(UPSERT)
24750
24751
 
@@ -24766,7 +24767,7 @@ Defined in: [sys/mod.ts:904](https://github.com/maiyunnet/kebab/blob/master/sys/
24766
24767
 
24767
24768
  > **where**(`s`): `this`
24768
24769
 
24769
- Defined in: [sys/mod.ts:1632](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1632)
24770
+ Defined in: [sys/mod.ts:1639](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1639)
24770
24771
 
24771
24772
  是 filter 的别名
24772
24773
 
@@ -24820,7 +24821,7 @@ Defined in: [sys/mod.ts:175](https://github.com/maiyunnet/kebab/blob/master/sys/
24820
24821
 
24821
24822
  > `static` **find**\<`T`\>(`db`, `val`, `opt?`): `Promise`\<`false` \| `T` & `Record`\<`string`, `any`\> \| `null`\>
24822
24823
 
24823
- Defined in: [sys/mod.ts:590](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L590)
24824
+ Defined in: [sys/mod.ts:597](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L597)
24824
24825
 
24825
24826
  根据主键(或 key 字段)获取对象
24826
24827
 
@@ -24880,7 +24881,7 @@ Defined in: [sys/mod.ts:590](https://github.com/maiyunnet/kebab/blob/master/sys/
24880
24881
 
24881
24882
  > `static` **getCreate**\<`T`\>(`db`, `opt?`): `T`
24882
24883
 
24883
- Defined in: [sys/mod.ts:572](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L572)
24884
+ Defined in: [sys/mod.ts:579](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L579)
24884
24885
 
24885
24886
  获取创建对象,通常用于新建数据库条目
24886
24887
 
@@ -25068,7 +25069,7 @@ Defined in: [sys/mod.ts:193](https://github.com/maiyunnet/kebab/blob/master/sys/
25068
25069
 
25069
25070
  > `static` **one**(`db`, `s`, `opt`): `Promise`\<`false` \| `Record`\<`string`, `any`\> \| `null`\>
25070
25071
 
25071
- Defined in: [sys/mod.ts:617](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L617)
25072
+ Defined in: [sys/mod.ts:624](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L624)
25072
25073
 
25073
25074
  ##### Parameters
25074
25075
 
@@ -25118,7 +25119,7 @@ Defined in: [sys/mod.ts:617](https://github.com/maiyunnet/kebab/blob/master/sys/
25118
25119
 
25119
25120
  > `static` **one**\<`T`\>(`db`, `s`, `opt?`): `Promise`\<`false` \| `T` & `Record`\<`string`, `any`\> \| `null`\>
25120
25121
 
25121
- Defined in: [sys/mod.ts:630](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L630)
25122
+ Defined in: [sys/mod.ts:637](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L637)
25122
25123
 
25123
25124
  ##### Type Parameters
25124
25125
 
@@ -25176,7 +25177,7 @@ Defined in: [sys/mod.ts:630](https://github.com/maiyunnet/kebab/blob/master/sys/
25176
25177
 
25177
25178
  > `static` **oneArray**(`db`, `s`, `opt?`): `Promise`\<`false` \| `Record`\<`string`, `any`\> \| `null`\>
25178
25179
 
25179
- Defined in: [sys/mod.ts:707](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L707)
25180
+ Defined in: [sys/mod.ts:714](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L714)
25180
25181
 
25181
25182
  通过 where 条件筛选单条数据返回原生对象
25182
25183
 
@@ -25228,7 +25229,7 @@ Defined in: [sys/mod.ts:707](https://github.com/maiyunnet/kebab/blob/master/sys/
25228
25229
 
25229
25230
  > `static` **primarys**(`db`, `where?`, `opt?`): `Promise`\<`false` \| `any`[]\>
25230
25231
 
25231
- Defined in: [sys/mod.ts:728](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L728)
25232
+ Defined in: [sys/mod.ts:735](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L735)
25232
25233
 
25233
25234
  根据 where 条件获取主键值列表
25234
25235
 
@@ -25376,7 +25377,7 @@ Defined in: [sys/mod.ts:334](https://github.com/maiyunnet/kebab/blob/master/sys/
25376
25377
 
25377
25378
  > `static` **select**\<`T`\>(`db`, `c`, `opt?`): `T` & `Record`\<`string`, `any`\>
25378
25379
 
25379
- Defined in: [sys/mod.ts:513](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L513)
25380
+ Defined in: [sys/mod.ts:520](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L520)
25380
25381
 
25381
25382
  select 自定字段
25382
25383
 
@@ -25442,7 +25443,7 @@ select 自定字段
25442
25443
 
25443
25444
  > `static` **toArrayByRecord**\<`T`\>(`obj`): `Record`\<`string`, `Record`\<`string`, `any`\>\>
25444
25445
 
25445
- Defined in: [sys/mod.ts:755](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L755)
25446
+ Defined in: [sys/mod.ts:762](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L762)
25446
25447
 
25447
25448
  将 key val 组成的数据列表转换为原生对象模式,获取的是新创建的数组
25448
25449
 
@@ -25586,7 +25587,7 @@ Defined in: [sys/mod.ts:413](https://github.com/maiyunnet/kebab/blob/master/sys/
25586
25587
 
25587
25588
  > `static` **updateList**(`db`, `data`, `key`, `opt?`): `Promise`\<`boolean` \| `null`\>
25588
25589
 
25589
- Defined in: [sys/mod.ts:449](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L449)
25590
+ Defined in: [sys/mod.ts:450](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L450)
25590
25591
 
25591
25592
  批量更新数据
25592
25593
 
@@ -25609,12 +25610,17 @@ Defined in: [sys/mod.ts:449](https://github.com/maiyunnet/kebab/blob/master/sys/
25609
25610
 
25610
25611
  `string`
25611
25612
 
25612
- 用于定位记录的字段名(主键或唯一键),该字段仅用于 WHERE 条件匹配,不会被更新;
25613
+ 用于定位待更新记录的字段名,通常为主键或唯一键,至少必须建立索引;
25614
+ 该参数是字段名而不是索引名,仅参与 ON / WHERE 条件匹配,不会被更新;
25613
25615
  data 中每个元素都必须包含此字段,否则该元素会被跳过
25614
25616
 
25615
25617
  ##### opt?
25616
25618
 
25617
- 选项(opt.pre: MySQL 表前缀/PostgreSQL Schema 名)
25619
+ 选项(opt.pre: MySQL 表前缀/PostgreSQL Schema 名;opt.batchSize: 每批更新条数)
25620
+
25621
+ ###### batchSize?
25622
+
25623
+ `number`
25618
25624
 
25619
25625
  ###### ctr?
25620
25626
 
@@ -25670,7 +25676,7 @@ Defined in: [sys/mod.ts:184](https://github.com/maiyunnet/kebab/blob/master/sys/
25670
25676
 
25671
25677
  > `static` **where**\<`T`\>(`db`, `s?`, `opt?`): `T` & `Record`\<`string`, `any`\>
25672
25678
 
25673
- Defined in: [sys/mod.ts:543](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L543)
25679
+ Defined in: [sys/mod.ts:550](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L550)
25674
25680
 
25675
25681
  通过 where 条件获取模型
25676
25682
 
@@ -25935,7 +25941,7 @@ sys/mod/interfaces/IModUnionItem.md
25935
25941
 
25936
25942
  # Interface: IModUnionItem
25937
25943
 
25938
- Defined in: [sys/mod.ts:1792](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1792)
25944
+ Defined in: [sys/mod.ts:1799](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1799)
25939
25945
 
25940
25946
  ## Properties
25941
25947
 
@@ -25943,7 +25949,7 @@ Defined in: [sys/mod.ts:1792](https://github.com/maiyunnet/kebab/blob/master/sys
25943
25949
 
25944
25950
  > **field**: `string`
25945
25951
 
25946
- Defined in: [sys/mod.ts:1793](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1793)
25952
+ Defined in: [sys/mod.ts:1800](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1800)
25947
25953
 
25948
25954
  ***
25949
25955
 
@@ -25951,7 +25957,7 @@ Defined in: [sys/mod.ts:1793](https://github.com/maiyunnet/kebab/blob/master/sys
25951
25957
 
25952
25958
  > `optional` **where?**: `any`
25953
25959
 
25954
- Defined in: [sys/mod.ts:1794](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1794)
25960
+ Defined in: [sys/mod.ts:1801](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1801)
25955
25961
 
25956
25962
  sys/mod/interfaces/IRows.md
25957
25963
  ---
@@ -25964,7 +25970,7 @@ sys/mod/interfaces/IRows.md
25964
25970
 
25965
25971
  # Interface: IRows\<T\>
25966
25972
 
25967
- Defined in: [sys/mod.ts:1786](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1786)
25973
+ Defined in: [sys/mod.ts:1793](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1793)
25968
25974
 
25969
25975
  ## Extends
25970
25976
 
@@ -25982,7 +25988,7 @@ Defined in: [sys/mod.ts:1786](https://github.com/maiyunnet/kebab/blob/master/sys
25982
25988
 
25983
25989
  > `readonly` **length**: `number`
25984
25990
 
25985
- Defined in: [sys/mod.ts:1787](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1787)
25991
+ Defined in: [sys/mod.ts:1794](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1794)
25986
25992
 
25987
25993
  ## Methods
25988
25994
 
@@ -25990,7 +25996,7 @@ Defined in: [sys/mod.ts:1787](https://github.com/maiyunnet/kebab/blob/master/sys
25990
25996
 
25991
25997
  > **item**(`index`): `T`
25992
25998
 
25993
- Defined in: [sys/mod.ts:1788](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1788)
25999
+ Defined in: [sys/mod.ts:1795](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1795)
25994
26000
 
25995
26001
  #### Parameters
25996
26002
 
@@ -26008,7 +26014,7 @@ Defined in: [sys/mod.ts:1788](https://github.com/maiyunnet/kebab/blob/master/sys
26008
26014
 
26009
26015
  > **toArray**(): `Record`\<`string`, `any`\>[]
26010
26016
 
26011
- Defined in: [sys/mod.ts:1789](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1789)
26017
+ Defined in: [sys/mod.ts:1796](https://github.com/maiyunnet/kebab/blob/master/sys/mod.ts#L1796)
26012
26018
 
26013
26019
  #### Returns
26014
26020
 
package/index.d.ts CHANGED
@@ -5,7 +5,7 @@
5
5
  * --- 本文件用来定义每个目录实体地址的常量 ---
6
6
  */
7
7
  /** --- 当前系统版本号 --- */
8
- export declare const VER = "9.7.1";
8
+ export declare const VER = "9.7.3";
9
9
  /** --- 框架根目录,以 / 结尾 --- */
10
10
  export declare const ROOT_PATH: string;
11
11
  /** --- 框架的 LIB,以 / 结尾 --- */
package/index.js CHANGED
@@ -6,7 +6,7 @@
6
6
  * --- 本文件用来定义每个目录实体地址的常量 ---
7
7
  */
8
8
  /** --- 当前系统版本号 --- */
9
- export const VER = '9.7.1';
9
+ export const VER = '9.7.3';
10
10
  // --- 服务端用的路径 ---
11
11
  const imu = decodeURIComponent(import.meta.url).replace('file://', '').replace(/^\/(\w:)/, '$1');
12
12
  /** --- /xxx/xxx --- */
package/lib/sql.d.ts CHANGED
@@ -74,7 +74,8 @@ export declare class Sql {
74
74
  * --- MySQL: UPDATE t INNER JOIN (SELECT col AS alias ... UNION ALL SELECT ...) AS tmp ON t.key=tmp.key SET t.c=tmp.c ---
75
75
  * --- PostgreSQL: UPDATE t SET c=tmp.c FROM (VALUES ($1,...)) AS tmp(cols) WHERE t.key=tmp.key ---
76
76
  * @param table 表名
77
- * @param key 用于定位的主键/唯一键字段名
77
+ * @param key 用于定位待更新记录的字段名,通常为主键或唯一键,至少必须建立索引;
78
+ * 该参数是字段名而不是索引名,仅参与 ON / WHERE 匹配,不会被更新
78
79
  * @param cols 要更新的列名数组(不含 key)
79
80
  * @param rows 数据行数组,每行顺序为 [keyVal, col1Val, col2Val, ...](与 [key, ...cols] 对应)
80
81
  */
package/lib/sql.js CHANGED
@@ -171,7 +171,8 @@ export class Sql {
171
171
  * --- MySQL: UPDATE t INNER JOIN (SELECT col AS alias ... UNION ALL SELECT ...) AS tmp ON t.key=tmp.key SET t.c=tmp.c ---
172
172
  * --- PostgreSQL: UPDATE t SET c=tmp.c FROM (VALUES ($1,...)) AS tmp(cols) WHERE t.key=tmp.key ---
173
173
  * @param table 表名
174
- * @param key 用于定位的主键/唯一键字段名
174
+ * @param key 用于定位待更新记录的字段名,通常为主键或唯一键,至少必须建立索引;
175
+ * 该参数是字段名而不是索引名,仅参与 ON / WHERE 匹配,不会被更新
175
176
  * @param cols 要更新的列名数组(不含 key)
176
177
  * @param rows 数据行数组,每行顺序为 [keyVal, col1Val, col2Val, ...](与 [key, ...cols] 对应)
177
178
  */
@@ -182,24 +183,25 @@ export class Sql {
182
183
  const quotedTable = this.field(table, this._pre);
183
184
  const quotedKey = this.field(key);
184
185
  if (this._service === ESERVICE.MYSQL) {
185
- // --- MySQL 使用 UNION ALL SELECT 子查询,比 VALUES ROW() 更稳定 ---
186
- // --- MySQL 8.0 优化器在行数较多时对 VALUES ROW() 派生表会走不同执行路径,
187
- // 导致列名别名解析失败,JOIN 静默匹配 0 行;UNION ALL 无此问题 ---
188
- const selectParts = [];
189
- for (let ri = 0; ri < rows.length; ri++) {
190
- const row = rows[ri];
191
- const parts = row.map((v, ci) => {
186
+ // --- MySQL 8.0.19+ VALUES ROW() 派生表语法 ---
187
+ // --- 必须把 tmp 放在 UPDATE table_references 最前面,并使用 STRAIGHT_JOIN:
188
+ // 1. tmp 是小数据集,作为驱动表逐行查找目标表
189
+ // 2. STRAIGHT_JOIN 强制目标表按 key 条件被查找,避免优化器反向全表扫描
190
+ // 3. 相比 CASE WHEN,key 只出现一次,SQL 和参数量都更小 ---
191
+ const valueParts = [];
192
+ for (const row of rows) {
193
+ const parts = row.map(v => {
192
194
  const result = this._processValue(v);
193
195
  if (result.data.length > 0) {
194
196
  this._data.push(...result.data);
195
197
  }
196
- // --- 第一行加列名别名,后续行省略 ---
197
- return ri === 0 ? `${result.sql} AS ${this.field(allCols[ci])}` : result.sql;
198
+ return result.sql;
198
199
  });
199
- selectParts.push(`SELECT ${parts.join(', ')}`);
200
+ valueParts.push(`ROW(${parts.join(', ')})`);
200
201
  }
202
+ const tmpCols = allCols.map(c => this.field(c)).join(', ');
201
203
  const setClauses = cols.map(c => `t.${this.field(c)} = tmp.${this.field(c)}`).join(', ');
202
- this._sql = [`UPDATE ${quotedTable} t INNER JOIN (${selectParts.join(' UNION ALL ')}) AS tmp ON t.${quotedKey} = tmp.${quotedKey} SET ${setClauses}`];
204
+ this._sql = [`UPDATE (VALUES ${valueParts.join(', ')}) AS tmp(${tmpCols}) STRAIGHT_JOIN ${quotedTable} t ON t.${quotedKey} = tmp.${quotedKey} SET ${setClauses}`];
203
205
  }
204
206
  else {
205
207
  // --- PostgreSQL 使用 UPDATE FROM (VALUES ...) ---
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maiyunnet/kebab",
3
- "version": "9.7.1",
3
+ "version": "9.7.3",
4
4
  "description": "Simple, easy-to-use, and fully-featured Node.js framework that is ready-to-use out of the box.",
5
5
  "type": "module",
6
6
  "keywords": [
package/sys/child.js CHANGED
@@ -558,10 +558,10 @@ process.on('message', function (msg) {
558
558
  case 'stop': {
559
559
  // --- 需要停止监听,等待已有连接全部断开,然后关闭线程 ---
560
560
  stopping = true;
561
- httpServer.close();
562
- http2Server.close();
561
+ httpServer?.close();
562
+ http2Server?.close();
563
563
  // --- 立即关闭空闲保活连接(无活跃请求的 keep-alive socket),避免进程长时间等待 ---
564
- httpServer.closeIdleConnections();
564
+ httpServer?.closeIdleConnections();
565
565
  clearInterval(hbTimer);
566
566
  sMonitor.stop();
567
567
  // --- 等待活跃请求全部完成 ---
@@ -581,7 +581,7 @@ process.on('message', function (msg) {
581
581
  await lCore.sleep(5_000);
582
582
  waiting += 5_000;
583
583
  // --- 再次清理已变为空闲的保活连接 ---
584
- httpServer.closeIdleConnections();
584
+ httpServer?.closeIdleConnections();
585
585
  if (waiting > 3600_000) {
586
586
  break;
587
587
  }
package/sys/mod.d.ts CHANGED
@@ -182,14 +182,16 @@ export default class Mod {
182
182
  * @param db 数据库对象
183
183
  * @param data 数据列表,每个元素必须包含 key 字段,其余字段为要更新的列;
184
184
  * 支持稀疏数据(不同元素可以拥有不同的列集合),内部会自动按列集合分组批量执行
185
- * @param key 用于定位记录的字段名(主键或唯一键),该字段仅用于 WHERE 条件匹配,不会被更新;
185
+ * @param key 用于定位待更新记录的字段名,通常为主键或唯一键,至少必须建立索引;
186
+ * 该参数是字段名而不是索引名,仅参与 ON / WHERE 条件匹配,不会被更新;
186
187
  * data 中每个元素都必须包含此字段,否则该元素会被跳过
187
- * @param opt 选项(opt.pre: MySQL 表前缀/PostgreSQL Schema 名)
188
+ * @param opt 选项(opt.pre: MySQL 表前缀/PostgreSQL Schema 名;opt.batchSize: 每批更新条数)
188
189
  */
189
190
  static updateList(db: lDb.Pool | lDb.Transaction, data: Array<Record<string, any>>, key: string, opt?: {
190
191
  'ctr'?: sCtr.Ctr;
191
192
  'pre'?: string;
192
193
  'index'?: string;
194
+ 'batchSize'?: number;
193
195
  }): Promise<boolean | null>;
194
196
  /**
195
197
  * --- select 自定字段 ---
package/sys/mod.js CHANGED
@@ -307,9 +307,10 @@ export default class Mod {
307
307
  * @param db 数据库对象
308
308
  * @param data 数据列表,每个元素必须包含 key 字段,其余字段为要更新的列;
309
309
  * 支持稀疏数据(不同元素可以拥有不同的列集合),内部会自动按列集合分组批量执行
310
- * @param key 用于定位记录的字段名(主键或唯一键),该字段仅用于 WHERE 条件匹配,不会被更新;
310
+ * @param key 用于定位待更新记录的字段名,通常为主键或唯一键,至少必须建立索引;
311
+ * 该参数是字段名而不是索引名,仅参与 ON / WHERE 条件匹配,不会被更新;
311
312
  * data 中每个元素都必须包含此字段,否则该元素会被跳过
312
- * @param opt 选项(opt.pre: MySQL 表前缀/PostgreSQL Schema 名)
313
+ * @param opt 选项(opt.pre: MySQL 表前缀/PostgreSQL Schema 名;opt.batchSize: 每批更新条数)
313
314
  */
314
315
  static async updateList(db, data, key, opt = {}) {
315
316
  if (!data.length) {
@@ -335,12 +336,17 @@ export default class Mod {
335
336
  for (const [, groupItems] of groups) {
336
337
  const cols = Object.keys(groupItems[0]).filter(k => k !== key).sort();
337
338
  const allCols = [key, ...cols];
338
- // --- 每行占位符数量 = key + 所有列,分批避免超出数据库参数上限 ---
339
- const batchSize = Math.floor(60000 / allCols.length);
339
+ const service = db.getService() ?? lDb.ESERVICE.PGSQL;
340
+ /** --- 每行占位符数量 = key + 所有列,分批避免超出数据库参数上限 --- */
341
+ const maxBatchSize = Math.floor(65000 / allCols.length);
342
+ // --- MySQL 单条 UPDATE 太大时解析、物化、锁持有都会变慢,默认小批量多次执行更稳定;
343
+ // PostgreSQL 的 VALUES UPDATE 执行计划较稳定,默认尽量吃满参数上限减少网络往返 ---
344
+ const defaultBatchSize = service === lDb.ESERVICE.MYSQL ? 200 : maxBatchSize;
345
+ const batchSize = Math.max(1, Math.min(opt.batchSize ?? defaultBatchSize, maxBatchSize));
340
346
  for (let i = 0; i < groupItems.length; i += batchSize) {
341
347
  const batch = groupItems.slice(i, i + batchSize);
342
348
  const sq = lSql.get({
343
- 'service': db.getService() ?? lDb.ESERVICE.PGSQL,
349
+ 'service': service,
344
350
  'ctr': opt.ctr,
345
351
  'pre': opt.pre ?? this._$pre,
346
352
  });