💽
workers-qbでD1を操作する時のメモ
よく使うクエリとか注意点とか。
try-cacheを使う
workersでworkers-qbからD1を操作した場合、try-cacheを使わないとエラーが出力されない。
try {
const updated = await qb
.update({
tableName: "employees",
data: {
// snip
},
where: {
// snip
},
})
.execute();
} catch (e) {
console.error(e);
throw e;
}
updated_at は手動更新
データを更新しただけでは自動更新してくれない。
公式ページに掲載されている通り、明示的にアップデートを行う。
import { Raw } from 'workers-qb' // Raw をインポートする
const qb = new D1QB(env.DB)
const updated = await qb
.update({
tableName: 'employees',
data: {
role: 'CEO',
department: 'HQ',
updated_at: new Raw('CURRENT_TIMESTAMP'), // 今の時刻でupdated_atを更新する
},
where: {
conditions: 'id = ?1',
params: [123],
},
})
.execute() // updateを実行する
Discussion