Возвратите ошибку, если таблица содержит 0 строк в SQLite - PullRequest
0 голосов
/ 08 марта 2019

Я хочу сделать процесс пост-проверки для сборки базы данных, который создает схемы таблиц и загружает несколько TSV каждую ночь.Я хочу проверить, что процесс массовой загрузки действительно успешен, поэтому я хочу проверить, не является ли каждая таблица не пустой (с SELECT COUNT(*) FROM table_name> 0), и возвращает ошибку, если она пуста.

Является ли онаспособ сделать это?Или какие-нибудь обходные пути или стратегии проверки?

Очень ценится!

1 Ответ

1 голос
/ 09 марта 2019

Вы можете запустить команду выбора из командной строки, а затем оценить результат, используя любую оболочку, которую вы используете. Смотрите этот пример.

Создать таблицу

> sqlite3 test.db

PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE Cars(Id INTEGER PRIMARY KEY, Name TEXT, Price INTEGER);
INSERT INTO "Cars" VALUES(1,'Audi',52642);
INSERT INTO "Cars" VALUES(2,'Mercedes',57127);
INSERT INTO "Cars" VALUES(3,'Skoda',9000);
INSERT INTO "Cars" VALUES(4,'Volvo',29000);
INSERT INTO "Cars" VALUES(5,'Bentley',350000);
INSERT INTO "Cars" VALUES(6,'Citroen',21000);
INSERT INTO "Cars" VALUES(7,'Hummer',41400);
INSERT INTO "Cars" VALUES(8,'Volkswagen',21600);
COMMIT;

Скрипт Bash для проверки, если таблица Cars пуста

if [ "`sqlite3 test.db 'select count(*) from Cars;'`" != "0" ]
then
   echo "Not empty"
fi

Результаты в

Not empty

Конечно, вы можете заменить echo "Not empty" на exit 1, чтобы выйти из сценария и вызвать ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...