РЕДАКТИРОВАТЬ
Это сработало:
std::string tab_B = R"(
CREATE TABLE B (
b INT NOT NULL PRIMARY KEY,
bb INT NOT NULL,
FOREIGN KEY(b) REFERENCES A(a)
);
)";
Прагма и конфигурация не нужны
КОНЕЦ РЕДАКТИРОВАНИЯ
Я пробовал прагматический способ:
std::string fk_on = "PRAGMA foreign_keys = ON;";
sqlite3_exec(DB, fk_on.c_str(), NULL, 0, &messaggeError);
и настраивал один:
sqlite3_db_config(DB, SQLITE_DBCONFIG_ENABLE_FKEY, 1, &fkeyConstraintsEnabled);
Прагма ничего не дает мне, fkeyConstraintsEnabled дает 1. То, что я пытаюсь сделать, этосоздать таблицу B:
std::string tab_A = R"(
CREATE TABLE A (
a INT NOT NULL PRIMARY KEY
);
)";
std::string tab_B = R"(
CREATE TABLE B (
b INT NOT NULL PRIMARY KEY,
bb INT NOT NULL FOREIGN_KEY REFERENCES A(a)
);
)";