本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
內建模組
模組是APPSYNC_JS
執行期的一部分,並提供公用程式以協助寫入 JavaScript 解析器和函數。
DynamoDB 模組函數
DynamoDB 模組函數可在與 DynamoDB 資料來源互動時提供增強的體驗。您可以使用 函數向 DynamoDB 資料來源提出請求,而無需新增類型映射。
使用 匯入模組@aws-appsync/utils/dynamodb
:
// Modules are imported using
@aws-appsync/utils/dynamodb
import * as ddb from '@aws-appsync/utils/dynamodb';
函數
-
get<T>(payload: GetInput): DynamoDBGetItemRequest
-
提示
如需 的相關資訊輸入,請參閱 GetInput。
產生
DynamoDBGetItemRequest
物件以向 DynamoDB 提出GetItem請求。import { get } from '@aws-appsync/utils/dynamodb'; export function request(ctx) { return get({ key: { id: ctx.args.id } }); }
-
put<T>(payload): DynamoDBPutItemRequest
-
產生
DynamoDBPutItemRequest
物件以向 DynamoDB 提出PutItem請求。import * as ddb from '@aws-appsync/utils/dynamodb' export function request(ctx) { return ddb.put({ key: { id: util.autoId() }, item: ctx.args }); }
remove<T>(payload): DynamoDBDeleteItemRequest
-
產生
DynamoDBDeleteItemRequest
物件以向 DynamoDB 提出DeleteItem請求。import * as ddb from '@aws-appsync/utils/dynamodb'; export function request(ctx) { return ddb.remove({ key: { id: ctx.args.id } }); }
scan<T>(payload): DynamoDBScanRequest
-
產生
DynamoDBScanRequest
以向 DynamoDB 提出掃描請求。import * as ddb from '@aws-appsync/utils/dynamodb'; export function request(ctx) { const { limit = 10, nextToken } = ctx.args; return ddb.scan({ limit, nextToken }); }
sync<T>(payload): DynamoDBSyncRequest
-
產生
DynamoDBSyncRequest
物件以發出同步請求。請求只會接收自上次查詢以來變更的資料 (變動更新)。只能對版本化 DynamoDB 資料來源提出請求。import * as ddb from '@aws-appsync/utils/dynamodb'; export function request(ctx) { const { limit = 10, nextToken, lastSync } = ctx.args; return ddb.sync({ limit, nextToken, lastSync }); }
update<T>(payload): DynamoDBUpdateItemRequest
-
產生
DynamoDBUpdateItemRequest
物件以向 DynamoDB 提出UpdateItem請求。
作業
操作協助程式可讓您在更新期間對部分資料採取特定動作。若要開始使用,operations
請從 匯入@aws-appsync/utils/dynamodb
:
// Modules are imported using operations
import {operations} from '@aws-appsync/utils/dynamodb';
-
add<T>(payload)
-
在更新 DynamoDB 時新增屬性項目的協助程式函數。
範例
若要使用 ID 值將地址 (街道、城市和郵遞區號) 新增至現有的 DynamoDB 項目:
import { update, operations } from '@aws-appsync/utils/dynamodb'; export function request(ctx) { const updateObj = { address: operations.add({ street1: '123 Main St', city: 'New York', zip: '10001', }), }; return update({ key: { id: 1 }, update: updateObj }); }
append <T>(payload)
-
將承載附加至 DynamoDB 中現有清單的協助程式函數。
範例
若要在更新期間將新增的朋友 IDs(
newFriendIds
) 附加至現有的朋友清單 (friendsIds
):import { update, operations } from '@aws-appsync/utils/dynamodb'; export function request(ctx) { const newFriendIds = [101, 104, 111]; const updateObj = { friendsIds: operations.append(newFriendIds), }; return update({ key: { id: 1 }, update: updateObj }); }
decrement (by?)
-
在更新 DynamoDB 時減少項目中現有屬性值的協助程式函數。
範例
若要將朋友計數器 (
friendsCount
) 減少 10:import { update, operations } from '@aws-appsync/utils/dynamodb'; export function request(ctx) { const updateObj = { friendsCount: operations.decrement(10), }; return update({ key: { id: 1 }, update: updateObj }); }
increment (by?)
-
在更新 DynamoDB 時增加項目中現有屬性值的協助程式函數。
範例
若要將朋友計數器 (
friendsCount
) 增加 10:import { update, operations } from '@aws-appsync/utils/dynamodb'; export function request(ctx) { const updateObj = { friendsCount: operations.increment(10), }; return update({ key: { id: 1 }, update: updateObj }); }
prepend <T>(payload)
-
附加至 DynamoDB 中現有清單的協助程式函數。
範例
若要在更新期間將新增的朋友 IDs(
newFriendIds
) 預先載入現有的朋友清單 (friendsIds
):import { update, operations } from '@aws-appsync/utils/dynamodb'; export function request(ctx) { const newFriendIds = [101, 104, 111]; const updateObj = { friendsIds: operations.prepend(newFriendIds), }; return update({ key: { id: 1 }, update: updateObj }); }
replace <T>(payload)
-
在 DynamoDB 中更新項目時取代現有屬性的協助程式函數。當您想要更新屬性中的整個物件或子物件時,這非常有用,而不只是承載中的金鑰。
範例
若要取代
info
物件中的地址 (街道、城市和郵遞區號):import { update, operations } from '@aws-appsync/utils/dynamodb'; export function request(ctx) { const updateObj = { info: { address: operations.replace({ street1: '123 Main St', city: 'New York', zip: '10001', }), }, }; return update({ key: { id: 1 }, update: updateObj }); }
updateListItem <T>(payload, index)
-
取代清單中項目的協助程式函數。
範例
在更新 (
newFriendIds
) 的範圍中,此範例用於updateListItem
更新清單中第二個項目 (索引:1
,新 ID:102
) 和第三個項目 (索引:2
,新 ID:112
) 的 ID 值 ()friendsIds
。import { update, operations as ops } from '@aws-appsync/utils/dynamodb'; export function request(ctx) { const newFriendIds = [ ops.updateListItem('102', 1), ops.updateListItem('112', 2) ]; const updateObj = { friendsIds: newFriendIds }; return update({ key: { id: 1 }, update: updateObj }); }
輸入
-
Type GetInput<T>
-
GetInput<T>: { consistentRead?: boolean; key: DynamoDBKey<T>; }
類型宣告
-
consistentRead?: boolean
(選用)選擇性布林值,用於指定是否要使用 DynamoDB 執行強烈一致的讀取。
-
key: DynamoDBKey<T>
(必要)在 DynamoDB 中指定項目索引鍵的必要參數。DynamoDB 項目可能具有單一雜湊金鑰或雜湊和排序金鑰。
-
Type PutInput<T>
-
PutInput<T>: { _version?: number; condition?: DynamoDBFilterObject<T> | null; customPartitionKey?: string; item: Partial<T>; key: DynamoDBKey<T>; populateIndexFields?: boolean; }
類型宣告
-
_version?: number
(選用) -
condition?: DynamoDBFilterObject<T> | null
(選用)當您將物件放入 DynamoDB 資料表時,您可以選擇性地指定條件式表達式,以根據執行操作之前在 DynamoDB 中已存在的物件狀態來控制請求是否成功。
-
customPartitionKey?: string
(選用)啟用時,此字串值會修改啟用版本控制時,delta 同步表使用的
ds_sk
和ds_pk
記錄格式。啟用時,也會啟用populateIndexFields
項目的處理。 -
item: Partial<T>
(必要)要放入 DynamoDB 的項目的其他屬性。
-
key: DynamoDBKey<T>
(必要)必要參數,指定 DynamoDB 中要執行放置的項目索引鍵。DynamoDB 項目可能具有單一雜湊金鑰或雜湊和排序金鑰。
-
populateIndexFields?: boolean
(選用)布林值,當 與 啟用時,會為 Delta 同步表中的每個記錄
customPartitionKey
建立新的項目,特別是在gsi_ds_pk
和gsi_ds_sk
欄中。如需詳細資訊,請參閱 AWS AppSync 開發人員指南 中的衝突偵測和同步。
-
Type QueryInput<T>
-
QueryInput<T>: ScanInput<T> & { query: DynamoDBKeyCondition<Required<T>>; }
類型宣告
-
query: DynamoDBKeyCondition<Required<T>>
(必要)指定描述要查詢之項目的金鑰條件。對於指定的索引,分割區索引鍵的條件應該是等式,以及排序索引鍵是比較或
beginsWith
(當它是字串時)。分割區和排序金鑰僅支援數字和字串類型。範例
使用下列
User
類型:type User = { id: string; name: string; age: number; isVerified: boolean; friendsIds: string[] }
查詢只能包含下列欄位:
id
、name
和age
:const query: QueryInput<User> = { name: { eq: 'John' }, age: { gt: 20 }, }
-
Type RemoveInput<T>
-
RemoveInput<T>: { _version?: number; condition?: DynamoDBFilterObject<T>; customPartitionKey?: string; key: DynamoDBKey<T>; populateIndexFields?: boolean; }
類型宣告
-
_version?: number
(選用) -
condition?: DynamoDBFilterObject<T>
(選用)當您在 DynamoDB 中移除物件時,您可以選擇指定條件式表達式,以根據在執行操作之前在 DynamoDB 中已存在的物件狀態來控制請求是否成功。
範例
下列範例是包含條件的
DeleteItem
表達式,只有在文件的擁有者與提出請求的使用者相符時,才會允許操作成功。type Task = { id: string; title: string; description: string; owner: string; isComplete: boolean; } const condition: DynamoDBFilterObject<Task> = { owner: { eq: 'XXXXXXXXXXXXXXXX' }, } remove<Task>({ key: { id: 'XXXXXXXXXXXXXXXX', }, condition, });
-
customPartitionKey?: string
(選用)啟用時,該
customPartitionKey
值會修改啟用版本控制時,delta 同步表使用的ds_sk
和ds_pk
記錄格式。啟用時,也會啟用populateIndexFields
項目的處理。 -
key: DynamoDBKey<T>
(必要)必要參數,指定 DynamoDB 中要移除之項目的索引鍵。DynamoDB 項目可能具有單一雜湊金鑰或雜湊和排序金鑰。
範例
如果
User
僅具有使用者 的雜湊金鑰id
,則該金鑰看起來會如下所示:type User = { id: number name: string age: number isVerified: boolean } const key: DynamoDBKey<User> = { id: 1, }
如果資料表使用者具有雜湊金鑰 (
id
) 和排序金鑰 (name
),則金鑰看起來會如下所示:type User = { id: number name: string age: number isVerified: boolean friendsIds: string[] } const key: DynamoDBKey<User> = { id: 1, name: 'XXXXXXXXXX', }
-
populateIndexFields?: boolean
(選用)布林值,當 與 啟用時,會為 Delta 同步表中的每個記錄
customPartitionKey
建立新的項目,特別是在gsi_ds_pk
和gsi_ds_sk
欄中。
-
Type ScanInput<T>
-
ScanInput<T>: { consistentRead?: boolean | null; filter?: DynamoDBFilterObject<T> | null; index?: string | null; limit?: number | null; nextToken?: string | null; scanIndexForward?: boolean | null; segment?: number; select?: DynamoDBSelectAttributes; totalSegments?: number; }
類型宣告
-
consistentRead?: boolean | null
(選用)選用布林值,用於在查詢 DynamoDB 時指示一致的讀取。預設值為
false
。 -
filter?: DynamoDBFilterObject<T> | null
(選用)從資料表擷取結果後,套用至結果的選用篩選條件。
-
index?: string | null
(選用)要掃描的索引的選用名稱。
-
limit?: number | null
(選用)要傳回的選用最大結果數。
-
nextToken?: string | null
(選用)選用分頁權杖,以繼續先前的查詢。這會是從先前查詢所取得的。
-
scanIndexForward?: boolean | null
(選用)選用布林值,指出查詢是以遞增或遞減順序執行。依預設,此值是設為
true
。 -
segment?: number
(選用) -
select?: DynamoDBSelectAttributes
(選用)從 DynamoDB 傳回的屬性。根據預設, AWS AppSync DynamoDB 解析程式只會傳回投影至索引中的屬性。支援的值是:
-
ALL_ATTRIBUTES
從指定的資料表或索引傳回所有項目屬性。如果您查詢本機次要索引,DynamoDB 會從索引中每個相符項目的父資料表擷取整個項目。如果索引設定為投射所有項目屬性,所有資料都可從本機次要索引取得,不需進行任何擷取。
-
ALL_PROJECTED_ATTRIBUTES
傳回已投影至索引中的所有屬性。如果索引設定為投射所有屬性,此傳回值相當於指定
ALL_ATTRIBUTES
。 -
SPECIFIC_ATTRIBUTES
僅傳回 中列出的屬性
ProjectionExpression
。此傳回值等同於指定 ,ProjectionExpression
而不指定 的任何值AttributesToGet
。
-
-
totalSegments?: number
(選用)
-
Type DynamoDBSyncInput<T>
-
DynamoDBSyncInput<T>: { basePartitionKey?: string; deltaIndexName?: string; filter?: DynamoDBFilterObject<T> | null; lastSync?: number; limit?: number | null; nextToken?: string | null; }
類型宣告
-
basePartitionKey?: string
(選用)執行 Sync 操作時要使用的基礎資料表的分割區索引鍵。此欄位允許在資料表使用自訂分割區金鑰時執行同步操作。
-
deltaIndexName?: string
(選用)用於同步操作的索引。當資料表使用自訂分割區金鑰時,需要此索引才能在整個 delta 存放區資料表上啟用同步操作。同步操作將在 GSI(在
gsi_ds_pk
和 上建立gsi_ds_sk
) 上執行。 -
filter?: DynamoDBFilterObject<T> | null
(選用)從資料表擷取結果後,套用至結果的選用篩選條件。
-
lastSync?: number
(選用)以 epoch 毫秒為單位的時刻,上次成功的同步操作開始。如果指定此值,只會傳回
lastSync
之後變更的項目。只有在從初始同步操作擷取所有頁面之後,才能填入此欄位。如果省略,則會傳回基礎資料表的結果。否則,將會傳回來自 delta 資料表的結果。 -
limit?: number | null
(選用)一次要評估的選用項目數量上限。如果省略此值,預設限制將設為
100
個項目。此欄位的最大值為1000
個項目。 -
nextToken?: string | null
(選用)
-
Type DynamoDBUpdateInput<T>
-
DynamoDBUpdateInput<T>: { _version?: number; condition?: DynamoDBFilterObject<T>; customPartitionKey?: string; key: DynamoDBKey<T>; populateIndexFields?: boolean; update: DynamoDBUpdateObject<T>; }
類型宣告
-
_version?: number
(選用) -
condition?: DynamoDBFilterObject<T>
(選用)當您在 DynamoDB 中更新物件時,您可以選擇指定條件式表達式,以根據執行操作之前在 DynamoDB 中已存在的物件狀態來控制請求是否成功。
-
customPartitionKey?: string
(選用)啟用時,該
customPartitionKey
值會修改啟用版本控制時,delta 同步表使用的ds_sk
和ds_pk
記錄格式。啟用時,也會啟用populateIndexFields
項目的處理。 -
key: DynamoDBKey<T>
(必要)必要參數,指定正在更新的 DynamoDB 中項目的索引鍵。DynamoDB 項目可能具有單一雜湊金鑰或雜湊和排序金鑰。
-
populateIndexFields?: boolean
(選用)布林值,當 與 啟用時,會為 Delta 同步表中的每個記錄
customPartitionKey
建立新的項目,特別是在gsi_ds_pk
和gsi_ds_sk
欄中。 -
update: DynamoDBUpdateObject<T>
指定要更新的屬性及其新值的物件。更新物件可與
add
、remove
、、replace
increment
、decrement
、append
、prepend
、 搭配使用updateListItem
。
-
Amazon RDS模組函數
Amazon RDS模組函數在與與 Amazon RDS Data 設定的資料庫互動時提供增強的體驗API。使用 匯入模組@aws-appsync/utils/rds
:
import * as rds from '@aws-appsync/utils/rds';
也可以個別匯入函數。例如,以下匯入使用 sql
:
import { sql } from '@aws-appsync/utils/rds';
函數
您可以使用 AWS AppSync RDS模組的公用程式協助程式與資料庫互動。
select
公用程式會建立 SELECT
陳述式來查詢您的關聯式資料庫。
基本使用
以基本形式,您可以指定要查詢的資料表:
import { select, createPgStatement } from '@aws-appsync/utils/rds'; export function request(ctx) { // Generates statement: // "SELECT * FROM "persons" return createPgStatement(select({table: 'persons'})); }
請注意,您也可以在資料表識別碼中指定結構描述:
import { select, createPgStatement } from '@aws-appsync/utils/rds'; export function request(ctx) { // Generates statement: // SELECT * FROM "private"."persons" return createPgStatement(select({table: 'private.persons'})); }
指定資料欄
您可以使用 columns
屬性指定資料欄。如果未將此值設定為 值,則預設為 *
:
export function request(ctx) { // Generates statement: // SELECT "id", "name" // FROM "persons" return createPgStatement(select({ table: 'persons', columns: ['id', 'name'] })); }
您也可以指定資料欄的資料表:
export function request(ctx) { // Generates statement: // SELECT "id", "persons"."name" // FROM "persons" return createPgStatement(select({ table: 'persons', columns: ['id', 'persons.name'] })); }
限制和偏移
您可以套用 limit
和 offset
至查詢:
export function request(ctx) { // Generates statement: // SELECT "id", "name" // FROM "persons" // LIMIT :limit // OFFSET :offset return createPgStatement(select({ table: 'persons', columns: ['id', 'name'], limit: 10, offset: 40 })); }
訂購者
您可以使用 orderBy
屬性排序結果。提供指定資料欄的物件陣列和選用dir
屬性:
export function request(ctx) { // Generates statement: // SELECT "id", "name" FROM "persons" // ORDER BY "name", "id" DESC return createPgStatement(select({ table: 'persons', columns: ['id', 'name'], orderBy: [{column: 'name'}, {column: 'id', dir: 'DESC'}] })); }
篩選條件
您可以使用特殊條件物件建置篩選條件:
export function request(ctx) { // Generates statement: // SELECT "id", "name" // FROM "persons" // WHERE "name" = :NAME return createPgStatement(select({ table: 'persons', columns: ['id', 'name'], where: {name: {eq: 'Stephane'}} })); }
您也可以合併篩選條件:
export function request(ctx) { // Generates statement: // SELECT "id", "name" // FROM "persons" // WHERE "name" = :NAME and "id" > :ID return createPgStatement(select({ table: 'persons', columns: ['id', 'name'], where: {name: {eq: 'Stephane'}, id: {gt: 10}} })); }
您也可以建立OR
陳述式:
export function request(ctx) { // Generates statement: // SELECT "id", "name" // FROM "persons" // WHERE "name" = :NAME OR "id" > :ID return createPgStatement(select({ table: 'persons', columns: ['id', 'name'], where: { or: [ { name: { eq: 'Stephane'} }, { id: { gt: 10 } } ]} })); }
您也可以使用 否定條件not
:
export function request(ctx) { // Generates statement: // SELECT "id", "name" // FROM "persons" // WHERE NOT ("name" = :NAME AND "id" > :ID) return createPgStatement(select({ table: 'persons', columns: ['id', 'name'], where: { not: [ { name: { eq: 'Stephane'} }, { id: { gt: 10 } } ]} })); }
您也可以使用下列運算子來比較值:
運算子 | 描述 | 可能的值類型 |
---|---|---|
eq | 等於 | 數字、字串、布林值 |
ne | 不等於 | 數字、字串、布林值 |
le | 小於或等於 | 數字、字串 |
lt | 小於 | 數字、字串 |
ge | 大於或等於 | 數字、字串 |
gt | 大於 | 數字、字串 |
contains | 就像 | string |
notContains | 不喜歡 | string |
beginsWith | 以字首開頭 | string |
介於 | 在兩個值之間 | 數字、字串 |
attributeExists | 屬性不是 null | 數字、字串、布林值 |
size | 檢查元素的長度 | string |
insert
公用程式提供一種直接的方式,透過 INSERT
操作在資料庫中插入單列項目。
單一項目插入
若要插入項目,請指定資料表,然後傳遞至值的物件。物件索引鍵會映射到您的資料表資料欄。資料欄名稱會自動逸出,並使用變數映射將值傳送至資料庫:
import { insert, createMySQLStatement } from '@aws-appsync/utils/rds'; export function request(ctx) { const { input: values } = ctx.args; const insertStatement = insert({ table: 'persons', values }); // Generates statement: // INSERT INTO `persons`(`name`) // VALUES(:NAME) return createMySQLStatement(insertStatement) }
我的SQL使用案例
您可以結合 insert
後跟 select
來擷取插入的資料列:
import { insert, select, createMySQLStatement } from '@aws-appsync/utils/rds'; export function request(ctx) { const { input: values } = ctx.args; const insertStatement = insert({ table: 'persons', values }); const selectStatement = select({ table: 'persons', columns: '*', where: { id: { eq: values.id } }, limit: 1, }); // Generates statement: // INSERT INTO `persons`(`name`) // VALUES(:NAME) // and // SELECT * // FROM `persons` // WHERE `id` = :ID return createMySQLStatement(insertStatement, selectStatement) }
Postgres 使用案例
透過 Postgres,您可以使用 returning
*
或 欄名稱陣列:
import { insert, createPgStatement } from '@aws-appsync/utils/rds'; export function request(ctx) { const { input: values } = ctx.args; const insertStatement = insert({ table: 'persons', values, returning: '*' }); // Generates statement: // INSERT INTO "persons"("name") // VALUES(:NAME) // RETURNING * return createPgStatement(insertStatement) }
update
公用程式可讓您更新現有的資料列。您可以使用條件物件,將變更套用至滿足條件的所有資料列中的指定資料欄。例如,假設我們有一個結構描述,允許我們產生此突變。我們希望Person
使用 id
的值更新 name
的 ,3
但前提是我們從 開始已知道它們 (known_since
)2000
:
mutation Update { updatePerson( input: {id: 3, name: "Jon"}, condition: {known_since: {ge: "2000"}} ) { id name } }
我們的更新解析程式如下所示:
import { update, createPgStatement } from '@aws-appsync/utils/rds'; export function request(ctx) { const { input: { id, ...values }, condition } = ctx.args; const where = { ...condition, id: { eq: id }, }; const updateStatement = update({ table: 'persons', values, where, returning: ['id', 'name'], }); // Generates statement: // UPDATE "persons" // SET "name" = :NAME, "birthday" = :BDAY, "country" = :COUNTRY // WHERE "id" = :ID // RETURNING "id", "name" return createPgStatement(updateStatement) }
我們可以將檢查新增至我們的條件,以確保僅3
更新具有id
等於 主索引鍵的資料列。同樣地,對於 Postgres inserts
,您可以使用 returning
來傳回修改的資料。
remove
公用程式可讓您刪除現有的資料列。您可以在滿足條件的所有資料列上使用條件物件。請注意, delete
是 中預留的關鍵字 JavaScript。remove
應該改用:
import { remove, createPgStatement } from '@aws-appsync/utils/rds'; export function request(ctx) { const { input: { id }, condition } = ctx.args; const where = { ...condition, id: { eq: id } }; const deleteStatement = remove({ table: 'persons', where, returning: ['id', 'name'], }); // Generates statement: // DELETE "persons" // WHERE "id" = :ID // RETURNING "id", "name" return createPgStatement(updateStatement) }
轉換
在某些情況下,您可能希望在陳述式中使用有關正確物件類型的更具體性。您可以使用提供的類型提示來指定參數的類型。 AWS AppSync 支援與資料 相同的類型提示API。您可以使用模組中的 typeHint
函數 AWS AppSync rds
來轉換參數。
下列範例可讓您將陣列傳送為轉換為JSON物件的值。我們使用->
運算子在JSON陣列index
2
中的 擷取 元素:
import { sql, createPgStatement, toJsonObject, typeHint } from '@aws-appsync/utils/rds'; export function request(ctx) { const arr = ctx.args.list_of_ids const statement = sql`select ${typeHint.JSON(arr)}->2 as value` return createPgStatement(statement) } export function response(ctx) { return toJsonObject(ctx.result)[0][0].value }
在處理和比較 DATE
、 和 時TIME
, Casting 也很有用TIMESTAMP
:
import { select, createPgStatement, typeHint } from '@aws-appsync/utils/rds'; export function request(ctx) { const when = ctx.args.when const statement = select({ table: 'persons', where: { createdAt : { gt: typeHint.DATETIME(when) } } }) return createPgStatement(statement) }
以下是另一個範例,示範如何傳送目前的日期和時間:
import { sql, createPgStatement, typeHint } from '@aws-appsync/utils/rds'; export function request(ctx) { const now = util.time.nowFormatted('YYYY-MM-dd HH:mm:ss') return createPgStatement(sql`select ${typeHint.TIMESTAMP(now)}`) }
可用的類型提示
-
typeHint.DATE
- 對應的參數會以DATE
類型的物件傳送至資料庫。接受的格式為YYYY-MM-DD
。 -
typeHint.DECIMAL
- 對應的參數會以DECIMAL
類型的物件形式傳送至資料庫。 -
typeHint.JSON
- 對應的參數會以JSON
類型的物件形式傳送至資料庫。 -
typeHint.TIME
- 對應的字串參數值會以TIME
類型的物件形式傳送至資料庫。接受的格式為HH:MM:SS[.FFF]
。 -
typeHint.TIMESTAMP
- 對應的字串參數值會以TIMESTAMP
類型的物件形式傳送至資料庫。接受的格式為YYYY-MM-DD HH:MM:SS[.FFF]
。 -
typeHint.UUID
- 對應的字串參數值會以UUID
類型的物件形式傳送至資料庫。