I tried it, but I couldn't observe any difference
I tried it, but I couldn't observe any difference


wrangler deployone() does not return null, it will throw when it doesn't find a result.rowsRead you get is not the number of results. It's the number of rows read by SQLite to satisfy your query. So, if you do joins, scans, etc, and only end up with 1 row, you are not just charged for 1 row, but all the rows that had to be read to answer your query. If you invoke put() (or delete()) multiple times without performing any await in the meantime, the operations will automatically be combined and submitted atomically. In case of a machine failure, either all of the writes will have been stored to disk or none of the writes will have been stored to disk.
.batch([query_1, query_2]) function will use SQLite transactions under the hood so you can make sure both queries either commit or rollback. https://developers.cloudflare.com/d1/build-with-d1/d1-client-api/#dbbatchstorage.transaction work with SQLite-engine DOs?storage.transaction working for "SQLite-engine DOs" is great! However, is that just for the old get(), put(), etc. calls or does it work for SQL statements also?fetch), you shouldn't even need explicitly making transactions. But anyway, without concrete examples, this is mostly theory so I will stop here .exec() method does the prepare statements for you. Soon they will be cached automatically as well..sql.exec()If you invoke put() (or delete()) multiple times without performing any await in the meantime, the operations will automatically be combined and submitted atomically. In case of a machine failure, either all of the writes will have been stored to disk or none of the writes will have been stored to disk.


sql.exec().[[durable_objects.bindings]]
name = "DURABLE_TRAINER"
class_name = "Trainer"
[[migrations]]
tag = "v1"
new_classes = ["Trainer"] Cannot create binding for class 'Trainer' because it is not currently configured to implement
durable objects. Did you forget to apply a --new-class migration to it? [code: 10061]sql.exec()