using-sqlite-as-a-key-value-store

Using SQLite as a Key Value Store

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "using-sqlite-as-a-key-value-store" with this command: npx skills add rodydavis/skills/rodydavis-skills-using-sqlite-as-a-key-value-store

Using SQLite as a Key Value Store

SQLite is a very capable edge database that can store various shapes of data.

Key/Value databases are popular in applications for storing settings, and other non-relational data.

By using SQLite to store the key/values you can contain all the data for a user in a single file and can attach it to other databases or sync it to a server.

Create the table

To store key/value type data we need to first create our table.

CREATE TABLE key_value ( key TEXT NOT NULL PRIMARY KEY, value, UNIQUE(key) );

key

value

user_id

1

foo

bar

active

1

guest

0

SQLite has optional column types and can be very useful for dynamic values.

Save a value

To save a value for a given key we can run the following:

INSERT OR REPLACE INTO key_value (key, value) VALUES (:key, :value) RETURNING *;

key

value

user_id

1

Since the key is UNIQUE we do not have to worry about conflicts as it will overwrite the value as intended.

Read a value

To read a value we can pass in a key to our query:

SELECT value FROM key_value WHERE key = :key;

value

1

This will only return a single value column with a max of 1 rows.

Delete a value

To delete a value or key we can run the following:

DELETE FROM key_value WHERE key = :key;

Search for key or value

We can also search for a specific key or value (if it is a string) with the following:

SELECT key, value FROM key_value WHERE key LIKE :query OR value LIKE :query;

key

value

bar

1

foo

bar

Drift Support

If you are using Drift in dart, create a new file key_value.drift and add the following:

CREATE TABLE key_value ( "key" TEXT NOT NULL PRIMARY KEY, value TEXT, UNIQUE("key") );

setItem: INSERT OR REPLACE INTO key_value ("key", value) VALUES (:key, :value) RETURNING *;

getItem: SELECT value FROM key_value WHERE "key" = :key;

deleteItem: DELETE FROM key_value WHERE "key" = :key;

searchItem: SELECT "key", value FROM key_value WHERE "key" LIKE :query OR value LIKE :query;

Demo

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

flutter-control-and-screenshot

No summary provided by upstream source.

Repository SourceNeeds Review
General

install-flutter-from-git

No summary provided by upstream source.

Repository SourceNeeds Review
General

how-to-build-a-native-cross-platform-project-with-flutter

No summary provided by upstream source.

Repository SourceNeeds Review