跳至内容

原始数据库访问

尽管 Prisma Dart 客户端的模型委托 API 涵盖了大多数数据库操作,但在某些情况下,您可能需要直接访问数据库以执行特定于 SQL 方言的操作。

在 Prisma Dart 客户端中,您可以访问$raw属性以获取当前数据库连接的原始客户端实例。此客户端提供以下两种方法

  • $raw.query
  • $raw.execute

$raw.query

执行原始查询,例如

dart
final result = await prisma.$raw.query('SELECT * FROM "User"'); // PostgreSQL

$raw.execute

执行原始查询,例如

dart
final result = await prisma.$raw.execute('DELETE FROM "User"'); // PostgreSQL

参数

$raw.query$raw.execute 支持参数,例如

dart
// PostgreSQL
final result = await prisma.$raw.query(
  'SELECT * FROM "User" WHERE "id" = \$1',
  [1],
);

// MySQL
final result = await prisma.$raw.query(
  'SELECT * FROM `User` WHERE `id` = ?',
  [1],
);

提示

SQL 模板字符串因您使用的数据库而异,您应该查阅您正在使用的数据库的文档以了解有关 SQL 方言的详细信息。

在 BSD-3-Clause 许可下发布