Manage Data
Manage Data
Learn how to INSERT, UPDATE, and DELETE data in your database using SQLiteNow’s generated code.
Query Organization
Data modification queries are organized in the queries/
directory alongside SELECT queries:
src/commonMain/sql/SampleDatabase/queries/
├── person/
│ ├── selectAll.sql
│ ├── add.sql # INSERT
│ ├── updateEmail.sql # UPDATE
│ └── deleteByIds.sql # DELETE
INSERT Queries
Basic INSERT
File: queries/person/add.sql
INSERT INTO Person (first_name, last_name, email, phone, birth_date)
VALUES (:firstName, :lastName, :email, :phone, :birthDate);
This generates a query object with input parameters:
object PersonQuery {
object Add {
data class Params(
val firstName: String,
val lastName: String,
val email: String,
val phone: String?,
val birthDate: kotlinx.datetime.LocalDate?
)
// ...
}
}
As you can see Params class is generated automatically based on the SQL query parameters
and reside under PersonQuery/Add
object (object name is generated from file name).
UPDATE Queries
File: queries/person/updateEmail.sql
UPDATE Person
SET email = :email
WHERE id = :id;
This generates:
object PersonQuery {
object UpdateEmail {
data class Params(
val email: String,
val id: Long
)
// ...
}
}
As you can see Params class is generated automatically based on the SQL query parameters
and reside under PersonQuery/UpdateEmail
object.
DELETE Queries
File: queries/person/deleteByIds.sql
DELETE FROM Person
WHERE id IN :ids;
This generates:
object PersonQuery {
object DeleteByIds {
data class Params(
val ids: Collection<Long>
)
// ...
}
}
As you can see Params class is generated automatically based on the SQL query parameters. SQLiteNow automatically handles Collection parameters for IN clauses.
Execution Methods
All data modification queries use the execute()
method:
execute()
Executes the INSERT, UPDATE, or DELETE operation:
// Insert new person
db.person.add(
PersonQuery.Add.Params(
firstName = "John",
lastName = "Doe",
email = "john@example.com",
phone = "+1234567890",
birthDate = LocalDate(1990, 1, 1)
)
).execute()
// Update email
db.person.updateEmail(
PersonQuery.UpdateEmail.Params(
id = 1,
email = "newemail@example.com"
)
).execute()
// Delete multiple persons by IDs
db.person.deleteByIds(
PersonQuery.DeleteByIds.Params(
ids = listOf(1L, 2L, 3L)
)
).execute()
Next Steps
Initialize Data - Learn about provisioning initial data