Fluent使用MySQL驱动程序与您的MySQL数据库通信。虽然大多数时候你不需要使用它,但它确实有一些方便的功能。
原始(Raw)
有时您需要绕过Fluent并将原始查询发送到数据库。
let result = try mysqlDriver.raw("SELECT @@version")
注意
如果您使用Vapor,您可以用drop.mysql()
访问MySQL驱动程序
事务处理(Transaction)
如果您正在执行多个相互依赖的查询,那么如果其中一个查询失败,您可以使用事务处理来确保没有保存到数据库中的任何内容。
try mysqlDriver.transaction { conn in
// delete user's pets, then delete user
// if one of these fails, the transaction will rollback
try user.pets.makeQuery(conn).delete()
try user.makeQuery(conn).delete()
}
警告
确保使用到闭包中所提供的连接,以便在事务处理中包含您想要的所有查询。
指南(Manual)
您也可以手动将查询发送给驱动程序,而无需通过Fluent。
let query = try User.makeQuery()
...
let results = try mysqlDriver.query(query)