CREATE TABLE. Ключевое слово IF NOT EXISTS не дает упасть повторному запуску, если таблица уже есть.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpDbCrt 600 of 696 menu
◀ ▶

Создание таблицы в SQLite

Структура данных задается запросом CREATE TABLE.

Ключевое слово IF NOT EXISTS не дает упасть повторному запуску, если таблица уже есть. Целочисленный столбец с INTEGER PRIMARY KEY часто становится автоинкрементным идентификатором. Остальные поля описывают обычные типы SQLite, например TEXT и REAL:

#include <iostream> #include <sqlite3.h> int main() { sqlite3* db = nullptr; if (sqlite3_open("schema_lab.db", &db) != SQLITE_OK) { std::cerr << sqlite3_errmsg(db) << "\n"; sqlite3_close(db); return 1; } char* err = nullptr; if (sqlite3_exec( db, "CREATE TABLE IF NOT EXISTS probes (" "id INTEGER PRIMARY KEY," "label TEXT NOT NULL," "reading REAL" ")", nullptr, nullptr, &err ) != SQLITE_OK) { std::cerr << err << "\n"; sqlite3_free(err); sqlite3_close(db); return 1; } sqlite3_close(db); return 0; }

Ограничение NOT NULL запрещает пустое значение в колонке при вставке. После выполнения DDL таблица probes готова к INSERT, даже если строк пока нет. Проверим наличие имени в sqlite_master:

#include <iostream> #include <sqlite3.h> int main() { sqlite3* db = nullptr; if (sqlite3_open("schema_lab.db", &db) != SQLITE_OK) { std::cerr << sqlite3_errmsg(db) << "\n"; sqlite3_close(db); return 1; } sqlite3_stmt* stmt = nullptr; if (sqlite3_prepare_v2( db, "SELECT name FROM sqlite_master " "WHERE type = 'table' AND name = 'probes'", -1, &stmt, nullptr ) != SQLITE_OK) { std::cerr << sqlite3_errmsg(db) << "\n"; sqlite3_close(db); return 1; } int found = 0; if (sqlite3_step(stmt) == SQLITE_ROW) { found = 1; } sqlite3_finalize(stmt); std::cout << found << "\n"; sqlite3_close(db); return 0; }

Создайте таблицу routes в файле map_store.db с полями id, code (текст, обязательный) и distance_km (вещественное).

Проверьте через sqlite_master, что таблица routes зарегистрирована, и выведите true при успешной проверке.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить