@stamhoofd/sql 2.62.0 → 2.63.0
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/dist/src/SQLExpressions.d.ts +10 -0
- package/dist/src/SQLExpressions.d.ts.map +1 -1
- package/dist/src/SQLExpressions.js +29 -1
- package/dist/src/SQLExpressions.js.map +1 -1
- package/dist/src/SQLInsert.d.ts +3 -3
- package/dist/src/SQLInsert.d.ts.map +1 -1
- package/dist/src/SQLInsert.js +3 -3
- package/dist/src/SQLInsert.js.map +1 -1
- package/package.json +2 -2
- package/src/SQLExpressions.ts +34 -0
- package/src/SQLInsert.ts +40 -42
|
@@ -27,6 +27,11 @@ export declare class SQLMultiplicationSign implements SQLExpression {
|
|
|
27
27
|
export declare class SQLMinusSign implements SQLExpression {
|
|
28
28
|
getSQL(): SQLQuery;
|
|
29
29
|
}
|
|
30
|
+
export declare class SQLGreatest implements SQLExpression {
|
|
31
|
+
expressions: SQLDynamicExpression[];
|
|
32
|
+
constructor(...expressions: SQLDynamicExpression[]);
|
|
33
|
+
getSQL(options?: SQLExpressionOptions): SQLQuery;
|
|
34
|
+
}
|
|
30
35
|
export declare class SQLCalculation implements SQLExpression {
|
|
31
36
|
expressions: SQLExpression[];
|
|
32
37
|
constructor(...expressions: SQLExpression[]);
|
|
@@ -37,6 +42,11 @@ export declare class SQLSum implements SQLExpression {
|
|
|
37
42
|
constructor(expression: SQLExpression);
|
|
38
43
|
getSQL(options?: SQLExpressionOptions): SQLQuery;
|
|
39
44
|
}
|
|
45
|
+
export declare class SQLMin implements SQLExpression {
|
|
46
|
+
expression: SQLExpression;
|
|
47
|
+
constructor(expression: SQLExpression);
|
|
48
|
+
getSQL(options?: SQLExpressionOptions): SQLQuery;
|
|
49
|
+
}
|
|
40
50
|
export declare class SQLSelectAs implements SQLExpression {
|
|
41
51
|
expression: SQLExpression;
|
|
42
52
|
as: SQLAlias;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQLExpressions.d.ts","sourceRoot":"","sources":["../../src/SQLExpressions.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,aAAa,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE9F,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9D,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG,cAAc,EAAE,GAAG,IAAI,GAAG,aAAa,CAAC;AAE5F,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,cAAc,GAAG,IAAI,GAAG,aAAa,CAM7E;AAED,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,oBAAoB,GAAG,aAAa,CAa/E;
|
|
1
|
+
{"version":3,"file":"SQLExpressions.d.ts","sourceRoot":"","sources":["../../src/SQLExpressions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SQLTableExpression = exports.SQLColumnExpression = exports.SQLWildcardSelectExpression = exports.SQLArray = exports.SQLSafeValue = exports.SQLScalar = exports.SQLNow = exports.SQLNull = exports.SQLJSONValue = exports.SQLCast = exports.SQLAge = exports.SQLConcat = exports.SQLAlias = exports.SQLAssignment = exports.SQLSelectAs = exports.SQLSum = exports.SQLCalculation = exports.SQLMinusSign = exports.SQLMultiplicationSign = exports.SQLPlusSign = exports.SQLLower = exports.SQLCount = exports.SQLDistinct = void 0;
|
|
3
|
+
exports.SQLTableExpression = exports.SQLColumnExpression = exports.SQLWildcardSelectExpression = exports.SQLArray = exports.SQLSafeValue = exports.SQLScalar = exports.SQLNow = exports.SQLNull = exports.SQLJSONValue = exports.SQLCast = exports.SQLAge = exports.SQLConcat = exports.SQLAlias = exports.SQLAssignment = exports.SQLSelectAs = exports.SQLMin = exports.SQLSum = exports.SQLCalculation = exports.SQLGreatest = exports.SQLMinusSign = exports.SQLMultiplicationSign = exports.SQLPlusSign = exports.SQLLower = exports.SQLCount = exports.SQLDistinct = void 0;
|
|
4
4
|
exports.scalarToSQLExpression = scalarToSQLExpression;
|
|
5
5
|
exports.readDynamicSQLExpression = readDynamicSQLExpression;
|
|
6
6
|
const simple_database_1 = require("@simonbackx/simple-database");
|
|
@@ -82,6 +82,20 @@ class SQLMinusSign {
|
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
exports.SQLMinusSign = SQLMinusSign;
|
|
85
|
+
class SQLGreatest {
|
|
86
|
+
expressions;
|
|
87
|
+
constructor(...expressions) {
|
|
88
|
+
this.expressions = expressions;
|
|
89
|
+
}
|
|
90
|
+
getSQL(options) {
|
|
91
|
+
return (0, SQLExpression_1.joinSQLQuery)([
|
|
92
|
+
'GREATEST(',
|
|
93
|
+
(0, SQLExpression_1.joinSQLQuery)(this.expressions.map(e => readDynamicSQLExpression(e).getSQL(options)), ', '),
|
|
94
|
+
')',
|
|
95
|
+
]);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
exports.SQLGreatest = SQLGreatest;
|
|
85
99
|
class SQLCalculation {
|
|
86
100
|
expressions;
|
|
87
101
|
constructor(...expressions) {
|
|
@@ -106,6 +120,20 @@ class SQLSum {
|
|
|
106
120
|
}
|
|
107
121
|
}
|
|
108
122
|
exports.SQLSum = SQLSum;
|
|
123
|
+
class SQLMin {
|
|
124
|
+
expression;
|
|
125
|
+
constructor(expression) {
|
|
126
|
+
this.expression = expression;
|
|
127
|
+
}
|
|
128
|
+
getSQL(options) {
|
|
129
|
+
return (0, SQLExpression_1.joinSQLQuery)([
|
|
130
|
+
'MIN(',
|
|
131
|
+
this.expression.getSQL(options),
|
|
132
|
+
')',
|
|
133
|
+
]);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
exports.SQLMin = SQLMin;
|
|
109
137
|
class SQLSelectAs {
|
|
110
138
|
expression;
|
|
111
139
|
as;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQLExpressions.js","sourceRoot":"","sources":["../../src/SQLExpressions.ts"],"names":[],"mappings":";;;AAMA,sDAMC;AAED,4DAaC;AA3BD,iEAAuD;AACvD,mDAA8F;AAK9F,SAAgB,qBAAqB,CAAC,CAAwB;IAC1D,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACb,OAAO,IAAI,OAAO,EAAE,CAAC;IACzB,CAAC;IAED,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC;AAED,SAAgB,wBAAwB,CAAC,CAAuB;IAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACnB,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACb,OAAO,IAAI,OAAO,EAAE,CAAC;IACzB,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,CAAC;IACb,CAAC;IAED,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC;
|
|
1
|
+
{"version":3,"file":"SQLExpressions.js","sourceRoot":"","sources":["../../src/SQLExpressions.ts"],"names":[],"mappings":"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"}
|
package/dist/src/SQLInsert.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { SQLExpression, SQLExpressionOptions, SQLQuery } from
|
|
2
|
-
import { SQLAlias, SQLAssignment, SQLScalarValue, SQLTableExpression } from
|
|
1
|
+
import { SQLExpression, SQLExpressionOptions, SQLQuery } from './SQLExpression';
|
|
2
|
+
import { SQLAlias, SQLAssignment, SQLScalarValue, SQLTableExpression } from './SQLExpressions';
|
|
3
3
|
export declare class SQLInsert implements SQLExpression {
|
|
4
4
|
_columns: SQLExpression[];
|
|
5
5
|
_values: SQLExpression[][];
|
|
@@ -9,7 +9,7 @@ export declare class SQLInsert implements SQLExpression {
|
|
|
9
9
|
constructor(tableName: SQLTableExpression | string);
|
|
10
10
|
clone(): this;
|
|
11
11
|
columns(...columns: (SQLExpression | string)[]): this;
|
|
12
|
-
values(...values: (SQLExpression | SQLScalarValue)[][]): this;
|
|
12
|
+
values(...values: (SQLExpression | SQLScalarValue | null)[][]): this;
|
|
13
13
|
as(alias: string): this;
|
|
14
14
|
onDuplicateKeyUpdate(...assignments: SQLAssignment[]): this;
|
|
15
15
|
getSQL(options?: SQLExpressionOptions): SQLQuery;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQLInsert.d.ts","sourceRoot":"","sources":["../../src/SQLInsert.ts"],"names":[],"mappings":"AACA,OAAO,EAAoD,aAAa,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAClI,OAAO,EAAyB,QAAQ,EAAE,aAAa,EAAuB,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3I,qBAAa,SAAU,YAAW,aAAa;IAC3C,QAAQ,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"SQLInsert.d.ts","sourceRoot":"","sources":["../../src/SQLInsert.ts"],"names":[],"mappings":"AACA,OAAO,EAAoD,aAAa,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAClI,OAAO,EAAyB,QAAQ,EAAE,aAAa,EAAuB,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3I,qBAAa,SAAU,YAAW,aAAa;IAC3C,QAAQ,EAAE,aAAa,EAAE,CAAM;IAC/B,OAAO,EAAE,aAAa,EAAE,EAAE,CAAM;IAChC,GAAG,EAAE,QAAQ,GAAG,IAAI,CAAQ;IAC5B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,qBAAqB,EAAE,aAAa,EAAE,GAAG,IAAI,CAAQ;gBAEzC,SAAS,EAAE,kBAAkB,GAAG,MAAM;IAIlD,KAAK,IAAI,IAAI;IAMb,OAAO,CAAC,GAAG,OAAO,EAAE,CAAC,aAAa,GAAG,MAAM,CAAC,EAAE,GAAG,IAAI;IAKrD,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,aAAa,GAAG,cAAc,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI;IAYpE,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKvB,oBAAoB,CAAC,GAAG,WAAW,EAAE,aAAa,EAAE,GAAG,IAAI;IAK3D,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;IAoD1C,MAAM,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,GAAG,CAAC;QAAA,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;CAMlE"}
|
package/dist/src/SQLInsert.js
CHANGED
|
@@ -23,7 +23,7 @@ class SQLInsert {
|
|
|
23
23
|
return this;
|
|
24
24
|
}
|
|
25
25
|
values(...values) {
|
|
26
|
-
this._values = values.map(v => {
|
|
26
|
+
this._values = values.map((v) => {
|
|
27
27
|
if (v.length !== this._columns.length) {
|
|
28
28
|
throw new Error('Invalid number of values. Expected ' + this._columns.length + ' but got ' + v.length);
|
|
29
29
|
}
|
|
@@ -50,13 +50,13 @@ class SQLInsert {
|
|
|
50
50
|
query.push((0, SQLExpression_1.joinSQLQuery)([
|
|
51
51
|
'(',
|
|
52
52
|
(0, SQLExpression_1.joinSQLQuery)(columns, ', '),
|
|
53
|
-
')'
|
|
53
|
+
')',
|
|
54
54
|
]));
|
|
55
55
|
query.push('VALUES');
|
|
56
56
|
query.push((0, SQLExpression_1.joinSQLQuery)(this._values.map(values => (0, SQLExpression_1.joinSQLQuery)([
|
|
57
57
|
'(',
|
|
58
58
|
(0, SQLExpression_1.joinSQLQuery)(values.map(v => v.getSQL(options)), ', '),
|
|
59
|
-
')'
|
|
59
|
+
')',
|
|
60
60
|
])), ', '));
|
|
61
61
|
if (this._as !== null) {
|
|
62
62
|
query.push('AS', this._as.getSQL(options));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQLInsert.js","sourceRoot":"","sources":["../../src/SQLInsert.ts"],"names":[],"mappings":";;;AAAA,iEAAuD;AACvD,mDAAkI;AAClI,qDAA2I;AAE3I,MAAa,SAAS;IAClB,QAAQ,GAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"SQLInsert.js","sourceRoot":"","sources":["../../src/SQLInsert.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stamhoofd/sql",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.63.0",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"types": "./dist/index.d.ts",
|
|
6
6
|
"license": "UNLICENCED",
|
|
@@ -15,5 +15,5 @@
|
|
|
15
15
|
"publishConfig": {
|
|
16
16
|
"access": "public"
|
|
17
17
|
},
|
|
18
|
-
"gitHead": "
|
|
18
|
+
"gitHead": "0dd71a1869c5931dcf844dea1ecd2167819dc5c6"
|
|
19
19
|
}
|
package/src/SQLExpressions.ts
CHANGED
|
@@ -26,6 +26,7 @@ export function readDynamicSQLExpression(s: SQLDynamicExpression): SQLExpression
|
|
|
26
26
|
|
|
27
27
|
return new SQLScalar(s);
|
|
28
28
|
}
|
|
29
|
+
|
|
29
30
|
export class SQLDistinct implements SQLExpression {
|
|
30
31
|
expression: SQLExpression;
|
|
31
32
|
|
|
@@ -90,6 +91,22 @@ export class SQLMinusSign implements SQLExpression {
|
|
|
90
91
|
}
|
|
91
92
|
}
|
|
92
93
|
|
|
94
|
+
export class SQLGreatest implements SQLExpression {
|
|
95
|
+
expressions: SQLDynamicExpression[];
|
|
96
|
+
|
|
97
|
+
constructor(...expressions: SQLDynamicExpression[]) {
|
|
98
|
+
this.expressions = expressions;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
getSQL(options?: SQLExpressionOptions): SQLQuery {
|
|
102
|
+
return joinSQLQuery([
|
|
103
|
+
'GREATEST(',
|
|
104
|
+
joinSQLQuery(this.expressions.map(e => readDynamicSQLExpression(e).getSQL(options)), ', '),
|
|
105
|
+
')',
|
|
106
|
+
]);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
93
110
|
export class SQLCalculation implements SQLExpression {
|
|
94
111
|
expressions: SQLExpression[];
|
|
95
112
|
|
|
@@ -117,6 +134,23 @@ export class SQLSum implements SQLExpression {
|
|
|
117
134
|
]);
|
|
118
135
|
}
|
|
119
136
|
}
|
|
137
|
+
|
|
138
|
+
export class SQLMin implements SQLExpression {
|
|
139
|
+
expression: SQLExpression;
|
|
140
|
+
|
|
141
|
+
constructor(expression: SQLExpression) {
|
|
142
|
+
this.expression = expression;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
getSQL(options?: SQLExpressionOptions): SQLQuery {
|
|
146
|
+
return joinSQLQuery([
|
|
147
|
+
'MIN(',
|
|
148
|
+
this.expression.getSQL(options),
|
|
149
|
+
')',
|
|
150
|
+
]);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
120
154
|
export class SQLSelectAs implements SQLExpression {
|
|
121
155
|
expression: SQLExpression;
|
|
122
156
|
as: SQLAlias;
|
package/src/SQLInsert.ts
CHANGED
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
import { Database } from
|
|
2
|
-
import { isSQLExpression, joinSQLQuery, normalizeSQLQuery, SQLExpression, SQLExpressionOptions, SQLQuery } from
|
|
3
|
-
import { scalarToSQLExpression, SQLAlias, SQLAssignment, SQLColumnExpression, SQLScalarValue, SQLTableExpression } from
|
|
1
|
+
import { Database } from '@simonbackx/simple-database';
|
|
2
|
+
import { isSQLExpression, joinSQLQuery, normalizeSQLQuery, SQLExpression, SQLExpressionOptions, SQLQuery } from './SQLExpression';
|
|
3
|
+
import { scalarToSQLExpression, SQLAlias, SQLAssignment, SQLColumnExpression, SQLScalarValue, SQLTableExpression } from './SQLExpressions';
|
|
4
4
|
|
|
5
5
|
export class SQLInsert implements SQLExpression {
|
|
6
|
-
_columns: SQLExpression[] = []
|
|
7
|
-
_values: SQLExpression[][] = []
|
|
8
|
-
_as: SQLAlias|null = null
|
|
6
|
+
_columns: SQLExpression[] = [];
|
|
7
|
+
_values: SQLExpression[][] = [];
|
|
8
|
+
_as: SQLAlias | null = null;
|
|
9
9
|
_into: SQLTableExpression;
|
|
10
|
-
_onDuplicateKeyUpdate: SQLAssignment[]|null = null
|
|
10
|
+
_onDuplicateKeyUpdate: SQLAssignment[] | null = null;
|
|
11
11
|
|
|
12
|
-
constructor(tableName: SQLTableExpression|string) {
|
|
12
|
+
constructor(tableName: SQLTableExpression | string) {
|
|
13
13
|
this._into = typeof tableName === 'string' ? new SQLTableExpression(tableName) : tableName;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
clone(): this {
|
|
17
|
-
const c = new SQLInsert(this._into)
|
|
17
|
+
const c = new SQLInsert(this._into);
|
|
18
18
|
Object.assign(c, this);
|
|
19
19
|
return c as any;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
columns(...columns: (SQLExpression|string)[]): this {
|
|
23
|
-
this._columns = columns.map(c => typeof c === 'string' ? new SQLColumnExpression(c) : c
|
|
22
|
+
columns(...columns: (SQLExpression | string)[]): this {
|
|
23
|
+
this._columns = columns.map(c => typeof c === 'string' ? new SQLColumnExpression(c) : c) as any;
|
|
24
24
|
return this;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
values(...values: (SQLExpression|SQLScalarValue)[][]): this {
|
|
28
|
-
this._values = values.map(v => {
|
|
27
|
+
values(...values: (SQLExpression | SQLScalarValue | null)[][]): this {
|
|
28
|
+
this._values = values.map((v) => {
|
|
29
29
|
if (v.length !== this._columns.length) {
|
|
30
|
-
throw new Error('Invalid number of values. Expected ' + this._columns.length + ' but got ' + v.length)
|
|
30
|
+
throw new Error('Invalid number of values. Expected ' + this._columns.length + ' but got ' + v.length);
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
return v.map(c => isSQLExpression(c) ? c : scalarToSQLExpression(c))
|
|
33
|
+
return v.map(c => isSQLExpression(c) ? c : scalarToSQLExpression(c));
|
|
34
34
|
});
|
|
35
35
|
|
|
36
36
|
return this;
|
|
@@ -45,65 +45,63 @@ export class SQLInsert implements SQLExpression {
|
|
|
45
45
|
this._onDuplicateKeyUpdate = assignments;
|
|
46
46
|
return this;
|
|
47
47
|
}
|
|
48
|
-
|
|
48
|
+
|
|
49
49
|
getSQL(options?: SQLExpressionOptions): SQLQuery {
|
|
50
|
-
options = options ?? {}
|
|
50
|
+
options = options ?? {};
|
|
51
51
|
options.defaultNamespace = (this._into as any).namespace ?? (this._into).table ?? undefined;
|
|
52
52
|
|
|
53
53
|
const query: SQLQuery[] = [
|
|
54
54
|
'INSERT INTO',
|
|
55
55
|
this._into.getSQL(options),
|
|
56
|
-
]
|
|
56
|
+
];
|
|
57
57
|
|
|
58
|
-
const columns = this._columns.map(c => c.getSQL(options))
|
|
58
|
+
const columns = this._columns.map(c => c.getSQL(options));
|
|
59
59
|
query.push(
|
|
60
60
|
joinSQLQuery([
|
|
61
61
|
'(',
|
|
62
62
|
joinSQLQuery(columns, ', '),
|
|
63
|
-
')'
|
|
64
|
-
])
|
|
65
|
-
)
|
|
63
|
+
')',
|
|
64
|
+
]),
|
|
65
|
+
);
|
|
66
66
|
|
|
67
67
|
query.push(
|
|
68
|
-
'VALUES'
|
|
69
|
-
)
|
|
68
|
+
'VALUES',
|
|
69
|
+
);
|
|
70
70
|
|
|
71
71
|
query.push(
|
|
72
72
|
joinSQLQuery(
|
|
73
|
-
this._values.map(values =>
|
|
73
|
+
this._values.map(values =>
|
|
74
74
|
joinSQLQuery([
|
|
75
75
|
'(',
|
|
76
76
|
joinSQLQuery(values.map(v => v.getSQL(options)), ', '),
|
|
77
|
-
')'
|
|
78
|
-
])
|
|
77
|
+
')',
|
|
78
|
+
]),
|
|
79
79
|
),
|
|
80
|
-
', '
|
|
81
|
-
)
|
|
82
|
-
)
|
|
80
|
+
', ',
|
|
81
|
+
),
|
|
82
|
+
);
|
|
83
83
|
|
|
84
84
|
if (this._as !== null) {
|
|
85
85
|
query.push(
|
|
86
|
-
'AS',
|
|
87
|
-
this._as.getSQL(options)
|
|
88
|
-
)
|
|
86
|
+
'AS',
|
|
87
|
+
this._as.getSQL(options),
|
|
88
|
+
);
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
if (this._onDuplicateKeyUpdate !== null) {
|
|
92
|
-
query.push('ON DUPLICATE KEY UPDATE')
|
|
92
|
+
query.push('ON DUPLICATE KEY UPDATE');
|
|
93
93
|
query.push(
|
|
94
|
-
joinSQLQuery(this._onDuplicateKeyUpdate.map(a => a.getSQL(options)), ', ')
|
|
95
|
-
)
|
|
94
|
+
joinSQLQuery(this._onDuplicateKeyUpdate.map(a => a.getSQL(options)), ', '),
|
|
95
|
+
);
|
|
96
96
|
}
|
|
97
|
-
|
|
97
|
+
|
|
98
98
|
return joinSQLQuery(query, ' ');
|
|
99
99
|
}
|
|
100
|
-
|
|
101
|
-
async insert(): Promise<{insertId: any;affectedRows: number
|
|
102
|
-
const {query, params} = normalizeSQLQuery(this.getSQL())
|
|
100
|
+
|
|
101
|
+
async insert(): Promise<{ insertId: any;affectedRows: number }> {
|
|
102
|
+
const { query, params } = normalizeSQLQuery(this.getSQL());
|
|
103
103
|
console.log(query, params);
|
|
104
104
|
const result = await Database.insert(query, params);
|
|
105
105
|
return result[0];
|
|
106
106
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
107
|
}
|