Sqlite ошибка проверки внешних ключей после изменения таблицы

I’ve set up two tables:

CREATE TABLE A
(
    id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
    name TEXT
 );

CREATE TABLE B
(
    id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
    id2 INTEGER,
    book TEXT,
    FOREIGN KEY(id2) REFERENCES A(id)
);

After I insert data into A, it looks like this:

1    John

2    Amy

3    Peter

After I insert data into B, it looks like this:

1     1     Lord of the Rings

2     1     Catch 22

3     2     Sum of All Fears

4     3     Hunt for Red October

I then execute the following statement:

delete from a where id=1;

I get the following: "Error: foreign key constraint failed"

I then restart sqlite3 and try again but this time I enter this first:

PRAGMA foreign_keys = 1;

it still doesn’t work……

I have a database with tables albums and songs as follows:

Albums:
albums table

Songs:
songs table

I want to make the tables related, wtih albums being the parent and songs being the child, so I tried to turn the albumsId column in songs into a foreign key
enter image description here
But it always gives me the aforementioned «Error checking foreign keys after table modification». I have a couple of testing entries in both tables, could this be the case?

asked Jan 17, 2021 at 15:46

Igor Cheglakov's user avatar

3

If you go to Edit Pragmas and uncheck the Foreign keys option then the database will stop checking foreign key constraints. This will allow you to add the foreign key constraint without generating an error – you can then turn the foreign key pragma back on to enable checking for any future modifications (e.g. row insertion).

If you do this you still need to check that the foreign key constraint is satisfied for your existing table/data. To do this, select Tools > Foreign-Key Check. This will generate a table showing any foreign key violations, which you should fix if you can.

answered May 6 at 9:08

CheChe's user avatar

I’ve set up two tables:

CREATE TABLE A
(
    id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
    name TEXT
 );

CREATE TABLE B
(
    id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
    id2 INTEGER,
    book TEXT,
    FOREIGN KEY(id2) REFERENCES A(id)
);

After I insert data into A, it looks like this:

1    John

2    Amy

3    Peter

After I insert data into B, it looks like this:

1     1     Lord of the Rings

2     1     Catch 22

3     2     Sum of All Fears

4     3     Hunt for Red October

I then execute the following statement:

delete from a where id=1;

I get the following: "Error: foreign key constraint failed"

I then restart sqlite3 and try again but this time I enter this first:

PRAGMA foreign_keys = 1;

it still doesn’t work……

#sqlite

#sqlite

Вопрос:

У меня есть база данных с таблицами albums и songs следующим образом:

Альбомы: таблица альбомов

Песни: таблица песен

Я хочу сделать таблицы связанными, albums которые являются родительскими и songs дочерними, поэтому я попытался превратить столбец songs albumsId во внешний ключвведите описание изображения здесь, но он всегда выдает мне вышеупомянутую «Ошибку проверки внешних ключей после изменения таблицы». У меня есть пара тестовых записей в обеих таблицах, может ли это быть так?

Комментарии:

1. Удалите и воссоздайте песни таблицы с ограничением внешнего ключа.

2. Значит, вы не можете назначить внешние ключи в таблице, которая уже была инициализирована?

3. Вы не можете создать существующий столбец в качестве внешнего ключа.

Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем изучать базы данных и наше знакомство с библиотекой SQLite3. В реляционных базах данных, вернее, в реляционных СУБД есть множество приемов, которые позволяют обеспечить целостность данных, мы уже разобрались с ограничением уровня столбца и первичным ключом, который является одновременно и индексом таблицы базы данных, позволяющим значительно ускорить выборку данных из базы данных, и правилом, которое четко выполняет SQLite. В этой записи мы поговорим про еще одно ограничение уровня таблиц: внешний ключ или FOREIGN KEY.

Внешние ключи в базах данных SQLite: FOREIGN KEY в SQLite3

Внешние ключи в базах данных SQLite: FOREIGN KEY в SQLite3

Из этой записи вы узнаете как работает и для чего нужны внешние ключи в базах данных SQLite3. Познакомитесь с синтаксисом FROREIGN KEY в SQLite. А так же узнаете, как реализовать связи один ко многим и многие ко многим между таблицами базы данных под управлением SQLite при помощи внешних ключей. Но, стоит заметить, что вы сможете реализовать данные связи и без использования FOREIGN KEY, но в этом случае вы никак не обеспечите целостность данных в ваших таблицах.

Работа внешних ключей в базах данных SQLite: FOREIGEN KEY и REFERENCE в SQLite3

Содержание статьи:

  • Работа внешних ключей в базах данных SQLite: FOREIGEN KEY и REFERENCE в SQLite3
  • Реализация связи один ко многим в базах данных SQLite. Пример связи один ко многим и FOREIGEN KEY в SQLite
  • Реализация связи многие ко многим в базах данных SQLite3
  • Немного о логике внешних ключей в SQLite

Внешний ключ или FOREIGN KEY – это ограничение уровня таблицы в реляционных базах данных, в том числе и в базе данных SQLite3. Внешние ключи определяют правила, по которым будут связаны таблицы в базах данных SQLite. Но, кроме того, что внешние ключи определяют то, как будут связаны таблицы в базах данных SQLite3, они еще нужны для обеспечения целостности данных в базах данных.

В SQLite внешний ключ объявляется при помощи конструкции FOREIGN KEY, а таблица, на которую ссылается внешний ключ указывается после ключевого слово REFERENCE. Обратите внимание: указывается не только таблица, но и столбец, на который идет ссылка. Ниже вы можете увидеть изображение, на котором показан синтаксис использования внешнего ключа в базах данных SQLite, вернее синтаксис конструкции REFERENCE.

Синтаксис ограничения внешнего ключа в базах данных SQLite3

Синтаксис ограничения внешнего ключа в базах данных SQLite3

Правила использования внешнего ключа не очень сложные, но давайте разберемся с тем, как реализован внешний ключ в SQLite3 и его конструкции: FOREIGEN KEY и REFEERENCE. Обратите внимание: когда вы связываете таблицы при помощи внешнего ключа одна таблица является родительской, а вторая таблица является дочерней. Внешний ключ всегда ссылается на родительскую таблиц, другими словами конструкция FOREIGN KEY и REFERENCE указывается в дочерней таблице.

Подведем итог: внешний ключ в базах данных SQLite необходим для реализации связей между таблицами. FOREIGEN KEY позволяет реализовывать связи между таблицами в базах данных. Конструкция REFERENCE используется для указания ссылки на родительскую таблицу. Внешний ключ обеспечивает целостность данных между двумя таблицами и необходим для нормализации базы данных. Вторая нормальная форма и третья нормальная форма не могут быть реализованы без внешнего ключа. Вернее будет сказать: мы можем организовать связи между таблицами без внешнего ключа, но проверка правил при этом выполняться не будет.

Давайте рассмотрим несколько практических примеров реализации внешнего ключа в базах данных SQLite. Мы реализуем два типа связи: связь один ко многим и связь многие ко многим.

Реализация связи один ко многим в базах данных SQLite. Пример связи один ко многим и FOREIGEN KEY в SQLite

Давайте реализуем связь один ко многим при помощи внешнего ключа, для этого воспользуемся конструкциями FORIGEN KEY и REFERENCE. Мы будем связывать при помощи внешнего ключа две таблицы: таблицу авторов и таблицу книг, поэтому давайте договоримся о допущение, что один автор может написать много книг, но у книги может быть только один автор.

Чтобы реализовать связь один ко многим, нам нужно воспользоваться конструкцией FOREIGEN KEY и REFERENCE при создании таблицы при помощи команды CREATE.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

PRAGMA foreign_keys=on;

CREATE TABLE books(

Id INTEGER PRIMARY KEY,

title TEXT NOT NULL,

count_page INTEGER NOT NULL CHECK (count_page >0),

price REAL CHECK (price >0),

auth_id INTEGER NOT NULL,

FOREIGN KEY (auth_id) REFERENCES auth(id)

);

CREATE TABLE auth(

id INTEGER PRIMARY KEY,

name TEXT NOT NULL,

age INTEGER  CHECK (age >16)

);

Здесь нам нужно дать пояснение к том, как мы создали внешний ключ для базы данных. Во-первых, в SQLite3 по умолчанию отключена поддержка внешних ключей, команда PRAGMA позволяет включить внешние ключи в базах данных SQLite. Во-вторых, помимо внешнего ключа наши таблицы имеют ограничения уровня столбца. Третье, столбец который ссылается и столбец, на который ссылается, должны иметь одинаковый тип данных, это закон реляционных баз данных.

Если столбцы будут иметь разные типы данных внешний ключ не будет работать. Скорее всего, другие СУБД вам даже не дадут возможность создать такой внешний ключ, но SQLite имеет динамическую типизацию данных, поэтому внешний ключ будет создан.

Далее: конструкция FOREIGEN KEY объявляет о том, что столбец auth_id является ссылкой, а конструкция REFERENCE указывает, что столбец auth_id является ссылкой на столбец id таблицы auth. Таким нехитрым образом мы реализовали связь один ко многим в базе данных SQLite при помощи внешнего ключа.

Давайте теперь добавим строки в таблицу auth нашей базы данных, это можно сделать командой INSERT:

INSERT INTO auth (id, name, age)

VALUES (1, ‘Джек Лондон’, 40);

INSERT INTO auth (id, name, age)

VALUES (2, ‘Лев Толстой’, 82);

Добавлять данные при создании внешнего ключа и использовании FOREIGN KEY в нашем случае удобнее сперва в ту таблицу, на которую идет ссылка. Теперь добавим строки в таблицу books и укажем значения для нашего внешнего ключа.

INSERT INTO books (id, title, count_page, price, auth_id)

VALUES (1, ‘Белый клык’, 287, 300.00, 1);

INSERT INTO books (id, title, count_page, price, auth_id)

VALUES (2, ‘Война и мир’, 806, 780.00, 2);

Поскольку связь один ко многим, по нашей договоренности: один автор может написать много книг, добавим еще одно произведение Джека Лондона:

INSERT INTO books (id, title, count_page, price, auth_id)

VALUES (3, ‘Зов предков’, 121, 160.00, 1);

А теперь давайте посмотрим, что нам дает связь один ко многим, реализованная благодаря внешнему ключу, и как действует ограничение FOREIGEN KEY.

INSERT INTO books (id, title, count_page, price, auth_id)

VALUES (4, ‘Белый клык’, 121, 160.00, 3);

Этот SQL запрос INSERT не будет выполнен в SQLite3, поскольку действует ограничение внешнего ключа, мы получим ошибку: Error: FOREIGN KEY constraint failed. В таблице справочнике с авторами нет значения id = 3, SQLite это проверил и сказал нам, что мы не правы, что у  него есть FOREIGN KEY, который ничего не знает про автора с id = 3. Так обеспечивается целостность данных и так мы избавляемся от аномалии добавления данных в базах данных.

В нашем случае, если мы попробуем передать внешнему ключу значение NULL, то строка в таблицу не добавится, так как действует ограничение уровня столбца NOT NULL, но если бы этого ограничения не было, SQLite спокойно и честно добавил значение NULL, как ссылку в таблицу books, это может нарушить целостность ваших данных, поэтому будьте аккуратны, но это нельзя считать ошибкой, например, есть книги, автор которых неизвестен.

Попробуем изменить данные в таблицах, связанных при помощи внешнего ключа. Для этого воспользуемся командой UPDATE:

UPDATE books SET auth_id = 4 WHERE title = ‘Белый клык’;

SQLite не дала нам изменить значение auth_id на 4, так как в таблице auth нет авторов с id = 4 и это благодаря наличию внешнего ключа. Ошибка в SQLite будет содержать следующий текст: Error: FOREIGN KEY constraint failed. В дальнейшем мы рассмотрим каскадное обновление данных при помощи команды ON UPDATE.

Нам осталось использовать последнюю команду из группы манипуляции данными, чтобы убедиться, что внешние ключи в SQLite действительно обеспечивают целостность данных в базе данных. Попробуем удалить данные из таблицы, для этого есть команда DELETE.

DELETE FROM auth WHERE name = ‘Лев Толстой’;

Сделать у нас это не получится, потому что сработает ограничение внешнего ключа, мы не можем удалить данные из таблицы справочника авторов, пока на них ссылаются значения из таблицы книг. Ошибка будет следующей: Error: FOREIGN KEY constraint failed.

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

DELETE FROM books WHERE auth_id = 2;

DELETE FROM auth WHERE name = ‘Лев Толстой’;

Теперь мы удалили упоминание об авторе в таблице книг, а затем смогли удалить данные об авторе из таблицы auth, по-другому удалить данные из справочника мы не сможем: сперва удаляем данные из ссылающейся таблицы, а потом удаляем данные из таблицы, на которую ссылаемся – это правило внешнего ключа, которое обеспечивает целостность данных и защищает нас от аномалии удаления данных.

Про команду SELECT и то, как она работает с таблицами, которые используют внешние ключи, мы поговорим отдельно, так как это большая и требующая некоторых дополнительных усилий тема.

Сейчас нам важно понимать, что конструкция FOREIGEN KEY REFERENCE организует связь между таблицами базы данных, а также то, что внешний ключ очень тесно связан с понятием нормализации данных в базе данных. FOREIGEN KEY – это ограничения, которые заставляют SQLite проверять выполнение набора определенных правил, которые позволяют избежать аномалии модификации, удаления и обновления данных в таблицах базах данных.

Реализация связи многие ко многим в базах данных SQLite3

В принципе, мы уже сказали всё, что можно о внешних ключах в базах данных SQLite и разобрали особенности работы FOREIGEN KEY и REFERENCE в SQLite3. Раньше мы намеренно упрощали примеры, когда говорили про третью нормальную форму и когда разговаривали про особенности внешних ключей.

Давайте теперь исправим это упущение и будем считать, что одну книгу может написать много авторов и один автор может написать много книг. Реализуем связь многие ко многим в базах данных SQLite3 при помощи внешнего ключа.

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

PRAGMA foreign_keys=on;

CREATE TABLE books(

Id INTEGER PRIMARY KEY,

title TEXT NOT NULL,

count_page INTEGER NOT NULL CHECK (count_page >0),

price REAL CHECK (price >0)

);

CREATE TABLE auth(

id INTEGER PRIMARY KEY,

name TEXT NOT NULL,

age INTEGER  CHECK (age >16)

);

CREATE TABLE auth_book (

auth_id INTEGER NOT NULL,

books_id INTEGER NOT NULL,

FOREIGN KEY (auth_id) REFERENCES auth(id)

FOREIGN KEY (books_id) REFERENCES books(id)

);

Никаких особых хитростей при реализации связи в базах данных SQLite, да и любых других реляционных базах данных нет. Мы создали третью таблицу, в которой есть два столбца и оба этих столбца являются внешними ключами. Столбец auth_id является ссылкой на таблицу авторов, столбец books_id – это ссылка на таблицу книг. Добавляем данные в таблицы командой INSERT.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

Сперва добавим несколько строк в таблицу книг

INSERT INTO books (id, title, count_page, price)

VALUES (1, ‘Белый клык’, 287, 300.00);

INSERT INTO books (id, title, count_page, price)

VALUES (2, ‘Война и мир’, 806, 780.00);

Затем добавим несколько авторов

INSERT INTO auth (id, name, age)

VALUES (1, ‘Джек Лондон’, 40);

INSERT INTO auth (id, name, age)

VALUES (2, ‘Лев Толстой’, 82);

Мы добавили книги и авторов из предыдущего примера

Давайте добавим новую книгу

INSERT INTO books (id, title, count_page, price)

VALUES (3, 12 стульев’, 516, 480.00);

И добавим авторов, так 12 стульев была написана в соавторстве

Затем добавим несколько авторов

INSERT INTO auth (id, name, age)

VALUES (3, ‘Илья Ильф’, 39);

INSERT INTO auth (id, name, age)

VALUES (4, ‘Евгений Петров’, 38);

Мы подготовили таблицы, которые, на первый взгляд никак не связаны между собой, теперь давайте свяжем их связью многие ко многим, добавив нужные значения в столбцы FOREIGEN KEY таблицы auth_book.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

Связываем таблицы auth и book

для этого наполним данными результирующую таблицу

INSERT INTO auth_book (auth_id, books_id)

VALUES (1, 1);

INSERT INTO auth_book (auth_id, books_id)

VALUES (2, 2);

INSERT INTO auth_book (auth_id, books_id)

VALUES (3, 3);

INSERT INTO auth_book (auth_id, books_id)

VALUES (4, 3);

Хочу обратить ваше внимание на то, что SQLite и слышать не слышала про Льва Толстого, Джека Лондона и Ильфа с Петровым, она лишь проверяет работоспособность ссылок, ответственность за наполнение таблиц лежит на операторе. При таком подходе вы легко можете сказать, что Джек Лондон написал Войну и мир:

Говорим SQLite о том, что Джек Лондон написал Войну и мир

INSERT INTO auth_book (auth_id, books_id)

VALUES (1, 2);

С точки логики SQLite никакой ошибки нет, с точки зрения человека – ошибка есть. Внешние ключи никак не могут проверить смысл, который заложен в данных, они лишь проверяют и ограничивают логику работы базы данных. Но не все так страшно, когда мы начнем работать с триггерами, мы посмотрим, как при помощи триггера сделать так, чтобы результирующая таблица при организации связи многие ко многим с помощью FOREIGN KEY заполнялась автоматически, это будет дополнительным уровнем обеспечения целостности данных в базах данных.

Немного о логике внешних ключей в SQLite

Когда мы рассматривали третью и вторую нормальные формы, мы ничего не упоминали про внешние ключи и про то, что они реализуют связи между таблицами. Тогда мы говорили, что справочник является дочерней таблицей, а вот таблица со ссылками (со столбцом FOREIGEN KEY) является родительской. С одной стороны, мы правильно говорим, до тех пор, пока не сталкиваемся со связью многие ко многим, ведь нельзя же результирующую таблицу называть родительской…

Поэтому в базах данных SQLite разработчики четко обозначили терминологию:

  1. Родительская таблица — это таблица, на которую ссылается внешний ключ (FOREIGN KEY).
  2. Дочерняя таблица — это таблица, к которой применяется ограничение внешнего ключа.
  3. Родительский ключ — это один или несколько столбцов родительской таблицы, на которые ссылается внешний ключ (FOREIGN KEY).
  4. Дочерний ключ — это один или несколько столбцов дочерней таблицы, значения которых ограничиваются внешним ключом и которые перечисляются после ключевой фразы REFERENCES.

На самом деле, вам нужно выбрать ту терминологию, которую вам легче воспринимать, мне легче воспринимать так: таблица справочник – дочерняя таблица, таблица, которая ссылается на справочник – родительская таблица.

Важно, чтобы другие вас понимали, благо, язык SQL универсальный и все понимают, что FOREIGN KEY – это внешний ключ, который обеспечивает целостность данных. FOREIGN KEY, как и первичный ключ или PRIMARY KEY, имеет синтаксис, который позволяет записывать данное ограничение, как ограничение уровня столбца.

I managed to run the container with the debug flag.
The results from the logs, from failure to end of file (I added another TV show folder to scan from jellyfin, it progressed further, unfortunatly still eventual got stuck on a show, with the same error)

[2022-07-04 16:07:12] [EmbyStat.Jobs.Jobs.Sync.ShowSyncJob]  [INF] Found 0 missing episodes for show FLCL
[2022-07-04 16:07:12] [System.Net.Http.HttpClient.mediaServerClient.LogicalHandler]  [INF] Start processing HTTP request GET "https://xxx.xxx.xxx.xxx:xxxx/items?UserId=11a6bc3810434df2928531c8b18971c6&EnableTotalRecordCount=True&Fields=OriginalTitle%2CGenres%2CDateCreated%2CExternalUrls%2CStudios%2CPath%2COverview%2CProviderIds%2CSortName%2CParentId%2CPeople%2CMediaSources%2CMediaStreams%2CPremiereDate%2CCommunityRating%2COfficialRating%2CProductionYear%2CStatus%2CRunTimeTicks&EnableImageTypes=Primary&LocationTypes=FileSystem&ParentId=f1e94da948a6bd003e7e2cba276467b2&Recursive=True&IncludeItemTypes=Season"
[2022-07-04 16:07:12] [System.Net.Http.HttpClient.mediaServerClient.ClientHandler]  [INF] Sending HTTP request GET "https://xxx.xxx.xxx.xxx:xxxx/items?UserId=11a6bc3810434df2928531c8b18971c6&EnableTotalRecordCount=True&Fields=OriginalTitle%2CGenres%2CDateCreated%2CExternalUrls%2CStudios%2CPath%2COverview%2CProviderIds%2CSortName%2CParentId%2CPeople%2CMediaSources%2CMediaStreams%2CPremiereDate%2CCommunityRating%2COfficialRating%2CProductionYear%2CStatus%2CRunTimeTicks&EnableImageTypes=Primary&LocationTypes=FileSystem&ParentId=f1e94da948a6bd003e7e2cba276467b2&Recursive=True&IncludeItemTypes=Season"
[2022-07-04 16:07:12] [System.Net.Http.HttpClient.mediaServerClient.ClientHandler]  [INF] Received HTTP response headers after 186.7261ms - 200
[2022-07-04 16:07:12] [System.Net.Http.HttpClient.mediaServerClient.LogicalHandler]  [INF] End processing HTTP request after 187.4332ms - 200
[2022-07-04 16:07:12] [System.Net.Http.HttpClient.mediaServerClient.LogicalHandler]  [INF] Start processing HTTP request GET "https://xxx.xxx.xxx.xxx:xxxx/items?UserId=11a6bc3810434df2928531c8b18971c6&EnableTotalRecordCount=True&Fields=OriginalTitle%2CGenres%2CDateCreated%2CExternalUrls%2CStudios%2CPath%2COverview%2CProviderIds%2CSortName%2CParentId%2CMediaSources%2CMediaStreams%2CPremiereDate%2CCommunityRating%2COfficialRating%2CProductionYear%2CStatus%2CRunTimeTicks&EnableImageTypes=Banner%2CPrimary%2CThumb%2CLogo&LocationTypes=FileSystem&ParentId=f1e94da948a6bd003e7e2cba276467b2&Recursive=True&IncludeItemTypes=Episode"
[2022-07-04 16:07:12] [System.Net.Http.HttpClient.mediaServerClient.ClientHandler]  [INF] Sending HTTP request GET "https://xxx.xxx.xxx.xxx:xxxx/items?UserId=11a6bc3810434df2928531c8b18971c6&EnableTotalRecordCount=True&Fields=OriginalTitle%2CGenres%2CDateCreated%2CExternalUrls%2CStudios%2CPath%2COverview%2CProviderIds%2CSortName%2CParentId%2CMediaSources%2CMediaStreams%2CPremiereDate%2CCommunityRating%2COfficialRating%2CProductionYear%2CStatus%2CRunTimeTicks&EnableImageTypes=Banner%2CPrimary%2CThumb%2CLogo&LocationTypes=FileSystem&ParentId=f1e94da948a6bd003e7e2cba276467b2&Recursive=True&IncludeItemTypes=Episode"
[2022-07-04 16:07:13] [System.Net.Http.HttpClient.mediaServerClient.ClientHandler]  [INF] Received HTTP response headers after 327.569ms - 200
[2022-07-04 16:07:13] [System.Net.Http.HttpClient.mediaServerClient.LogicalHandler]  [INF] End processing HTTP request after 327.8871ms - 200
[2022-07-04 16:07:13] [EmbyStat.Core.Shows.ShowRepository]  [DBG] 
SELECT s.*, g.*, se.*, e.*
FROM Shows as s
LEFT JOIN GenreShow AS gs ON (gs.ShowsId = s.Id)
LEFT JOIN Genres AS g ON (gs.GenresId = g.Id)
LEFT JOIN Season AS se ON (s.Id = se.ShowId)
LEFT JOIN Episodes AS e ON (se.Id = e.SeasonId)
WHERE 1=1  AND s.Id = 'f1e94da948a6bd003e7e2cba276467b2'
[2022-07-04 16:07:14] [EmbyStat.Jobs.Jobs.Sync.ShowSyncJob]  [INF] Found 0 missing episodes for show Bleach
[2022-07-04 16:07:15] [EmbyStat.Jobs.Jobs.Sync.ShowSyncJob]  [ERR] Error while running job
Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 19: 'FOREIGN KEY constraint failed'.
at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
at Microsoft.Data.Sqlite.SqliteCommand.ExecuteNonQuery()
at System.Data.Common.DbCommand.ExecuteNonQueryAsync(CancellationToken cancellationToken)
--- End of stack trace from previous location ---
at Dapper.SqlMapper.ExecuteMultiImplAsync(IDbConnection cnn, CommandDefinition command, IEnumerable multiExec) in /_/Dapper/SqlMapper.Async.cs:line 624
at EmbyStat.Core.Shows.ShowRepository.UpsertShows(IEnumerable`1 shows)
at EmbyStat.Core.Shows.ShowRepository.UpsertShows(IEnumerable`1 shows)
at EmbyStat.Core.Shows.ShowRepository.UpsertShows(IEnumerable`1 shows)
at EmbyStat.Core.Shows.ShowRepository.UpsertShows(IEnumerable`1 shows)
at EmbyStat.Jobs.Jobs.Sync.ShowSyncJob.ProcessShowBlock(Library library, IReadOnlyList`1 shows, IEnumerable`1 genres, Double increment)
at EmbyStat.Jobs.Jobs.Sync.ShowSyncJob.ProcessChangedShows(Library library, IEnumerable`1 genres, Double logIncrementBase)
at EmbyStat.Jobs.Jobs.Sync.ShowSyncJob.ProcessShowsAsync()
at EmbyStat.Jobs.Jobs.Sync.ShowSyncJob.RunJobAsync()
at EmbyStat.Jobs.BaseJob.Execute()
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Database.Command]  [DBG] Creating DbCommand for 'ExecuteReader'.
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Database.Command]  [DBG] Created DbCommand for 'ExecuteReader' (0ms).
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Database.Command]  [DBG] Executing DbCommand [Parameters=[@__id_0='?' (DbType = Guid)], CommandType='"Text"', CommandTimeout='30']
SELECT "j"."Id", "j"."CurrentProgressPercentage", "j"."Description", "j"."EndTimeUtc", "j"."StartTimeUtc", "j"."State", "j"."Title", "j"."Trigger"
FROM "Jobs" AS "j"
WHERE "j"."Id" = @__id_0
LIMIT 1
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Database.Command]  [INF] Executed DbCommand (0ms) [Parameters=[@__id_0='?' (DbType = Guid)], CommandType='"Text"', CommandTimeout='30']
SELECT "j"."Id", "j"."CurrentProgressPercentage", "j"."Description", "j"."EndTimeUtc", "j"."StartTimeUtc", "j"."State", "j"."Title", "j"."Trigger"
FROM "Jobs" AS "j"
WHERE "j"."Id" = @__id_0
LIMIT 1
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Database.Command]  [DBG] A data reader was disposed.
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Update]  [DBG] SaveChanges starting for 'EsDbContext'.
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Database.Transaction]  [DBG] Beginning transaction with isolation level 'Unspecified'.
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Database.Transaction]  [DBG] Began transaction with isolation level 'Serializable'.
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Database.Command]  [DBG] Creating DbCommand for 'ExecuteReader'.
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Database.Command]  [DBG] Created DbCommand for 'ExecuteReader' (0ms).
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Database.Command]  [DBG] Executing DbCommand [Parameters=[@p3='?' (DbType = Guid), @p0='?' (DbType = Double), @p1='?' (DbType = DateTime), @p2='?' (DbType = Int32)], CommandType='"Text"', CommandTimeout='30']
UPDATE "Jobs" SET "CurrentProgressPercentage" = @p0, "EndTimeUtc" = @p1, "State" = @p2
WHERE "Id" = @p3;
SELECT changes();
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Database.Command]  [INF] Executed DbCommand (0ms) [Parameters=[@p3='?' (DbType = Guid), @p0='?' (DbType = Double), @p1='?' (DbType = DateTime), @p2='?' (DbType = Int32)], CommandType='"Text"', CommandTimeout='30']
UPDATE "Jobs" SET "CurrentProgressPercentage" = @p0, "EndTimeUtc" = @p1, "State" = @p2
WHERE "Id" = @p3;
SELECT changes();
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Database.Command]  [DBG] A data reader was disposed.
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Database.Transaction]  [DBG] Committing transaction.
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Database.Transaction]  [DBG] Committed transaction.
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Database.Transaction]  [DBG] Disposing transaction.
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Update]  [DBG] SaveChanges completed for 'EsDbContext' with 1 entities written to the database.
[2022-07-04 16:07:15] [EmbyStat.Jobs.Jobs.Sync.ShowSyncJob]  [ERR] SQLite Error 19: 'FOREIGN KEY constraint failed'.
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Database.Command]  [DBG] Creating DbCommand for 'ExecuteReader'.
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Database.Command]  [DBG] Created DbCommand for 'ExecuteReader' (0ms).
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Database.Command]  [DBG] Executing DbCommand [Parameters=[@__id_0='?' (DbType = Guid)], CommandType='"Text"', CommandTimeout='30']
SELECT "j"."Id", "j"."CurrentProgressPercentage", "j"."Description", "j"."EndTimeUtc", "j"."StartTimeUtc", "j"."State", "j"."Title", "j"."Trigger"
FROM "Jobs" AS "j"
WHERE "j"."Id" = @__id_0
LIMIT 1
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Database.Command]  [INF] Executed DbCommand (0ms) [Parameters=[@__id_0='?' (DbType = Guid)], CommandType='"Text"', CommandTimeout='30']
SELECT "j"."Id", "j"."CurrentProgressPercentage", "j"."Description", "j"."EndTimeUtc", "j"."StartTimeUtc", "j"."State", "j"."Title", "j"."Trigger"
FROM "Jobs" AS "j"
WHERE "j"."Id" = @__id_0
LIMIT 1
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Database.Command]  [DBG] A data reader was disposed.
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Update]  [DBG] SaveChanges starting for 'EsDbContext'.
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Database.Transaction]  [DBG] Beginning transaction with isolation level 'Unspecified'.
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Database.Transaction]  [DBG] Began transaction with isolation level 'Serializable'.
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Database.Command]  [DBG] Creating DbCommand for 'ExecuteReader'.
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Database.Command]  [DBG] Created DbCommand for 'ExecuteReader' (0ms).
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Database.Command]  [DBG] Executing DbCommand [Parameters=[@p1='?' (DbType = Guid), @p0='?' (DbType = DateTime)], CommandType='"Text"', CommandTimeout='30']
UPDATE "Jobs" SET "EndTimeUtc" = @p0
WHERE "Id" = @p1;
SELECT changes();
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Database.Command]  [INF] Executed DbCommand (0ms) [Parameters=[@p1='?' (DbType = Guid), @p0='?' (DbType = DateTime)], CommandType='"Text"', CommandTimeout='30']
UPDATE "Jobs" SET "EndTimeUtc" = @p0
WHERE "Id" = @p1;
SELECT changes();
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Database.Command]  [DBG] A data reader was disposed.
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Database.Transaction]  [DBG] Committing transaction.
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Database.Transaction]  [DBG] Committed transaction.
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Database.Transaction]  [DBG] Disposing transaction.
[2022-07-04 16:07:15] [Microsoft.EntityFrameworkCore.Update]  [DBG] SaveChanges completed for 'EsDbContext' with 1 entities written to the database.
[2022-07-04 16:07:15] [EmbyStat.Jobs.Jobs.Sync.ShowSyncJob]  [ERR] Job failed, check logs for more info.
[2022-07-04 16:07:15] [Hangfire.AutomaticRetryAttribute]  [ERR] Failed to process the job '8fcdedcd-49f6-4104-adaf-cdda3f13e1b2': an exception occurred.
Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 19: 'FOREIGN KEY constraint failed'.
at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
at Microsoft.Data.Sqlite.SqliteCommand.ExecuteNonQuery()
at System.Data.Common.DbCommand.ExecuteNonQueryAsync(CancellationToken cancellationToken)
--- End of stack trace from previous location ---
at Dapper.SqlMapper.ExecuteMultiImplAsync(IDbConnection cnn, CommandDefinition command, IEnumerable multiExec) in /_/Dapper/SqlMapper.Async.cs:line 624
at EmbyStat.Core.Shows.ShowRepository.UpsertShows(IEnumerable`1 shows)
at EmbyStat.Core.Shows.ShowRepository.UpsertShows(IEnumerable`1 shows)
at EmbyStat.Core.Shows.ShowRepository.UpsertShows(IEnumerable`1 shows)
at EmbyStat.Core.Shows.ShowRepository.UpsertShows(IEnumerable`1 shows)
at EmbyStat.Jobs.Jobs.Sync.ShowSyncJob.ProcessShowBlock(Library library, IReadOnlyList`1 shows, IEnumerable`1 genres, Double increment)
at EmbyStat.Jobs.Jobs.Sync.ShowSyncJob.ProcessChangedShows(Library library, IEnumerable`1 genres, Double logIncrementBase)
at EmbyStat.Jobs.Jobs.Sync.ShowSyncJob.ProcessShowsAsync()
at EmbyStat.Jobs.Jobs.Sync.ShowSyncJob.RunJobAsync()
at EmbyStat.Jobs.BaseJob.Execute()
at EmbyStat.Jobs.BaseJob.Execute()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
[2022-07-04 16:07:19] [Microsoft.AspNetCore.Hosting.Diagnostics]  [INF] Request starting HTTP/1.1 GET http://xxx.xxx.xxx.xxx:6555/api/log/list - -
[2022-07-04 16:07:19] [Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker]  [INF] Route matched with {action = "GetLogFileList", controller = "Log"}. Executing controller action with signature Microsoft.AspNetCore.Mvc.IActionResult GetLogFileList() on controller EmbyStat.Controllers.Log.LogController (EmbyStat.Controllers).
[2022-07-04 16:07:19] [Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker]  [DBG] Execution plan of authorization filters (in the following order): ["None"]
[2022-07-04 16:07:19] [Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker]  [DBG] Execution plan of resource filters (in the following order): ["None"]
[2022-07-04 16:07:19] [Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker]  [DBG] Execution plan of action filters (in the following order): ["Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter (Order: -2147483648)","Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter (Order: -3000)"]
[2022-07-04 16:07:19] [Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker]  [DBG] Execution plan of exception filters (in the following order): ["EmbyStat.Common.Exceptions.BusinessExceptionFilterAttribute (Order: 0)"]
[2022-07-04 16:07:19] [Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker]  [DBG] Execution plan of result filters (in the following order): ["Microsoft.AspNetCore.Mvc.ProducesAttribute (Order: 0)"]
[2022-07-04 16:07:19] [Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker]  [DBG] Executing controller factory for controller EmbyStat.Controllers.Log.LogController (EmbyStat.Controllers)
[2022-07-04 16:07:19] [Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker]  [DBG] Executed controller factory for controller EmbyStat.Controllers.Log.LogController (EmbyStat.Controllers)
[2022-07-04 16:07:19] [Microsoft.AspNetCore.Mvc.Infrastructure.DefaultOutputFormatterSelector]  [DBG] List of registered output formatters, in the following order: ["Microsoft.AspNetCore.Mvc.Formatters.HttpNoContentOutputFormatter","Microsoft.AspNetCore.Mvc.Formatters.StringOutputFormatter","Microsoft.AspNetCore.Mvc.Formatters.StreamOutputFormatter","Microsoft.AspNetCore.Mvc.Formatters.SystemTextJsonOutputFormatter"]
[2022-07-04 16:07:19] [Microsoft.AspNetCore.Mvc.Infrastructure.DefaultOutputFormatterSelector]  [DBG] No information found on request to perform content negotiation.
[2022-07-04 16:07:19] [Microsoft.AspNetCore.Mvc.Infrastructure.DefaultOutputFormatterSelector]  [DBG] Attempting to select the first output formatter in the output formatters list which supports a content type from the explicitly specified content types '["application/json"]'.
[2022-07-04 16:07:19] [Microsoft.AspNetCore.Mvc.Infrastructure.DefaultOutputFormatterSelector]  [DBG] Selected output formatter 'Microsoft.AspNetCore.Mvc.Formatters.SystemTextJsonOutputFormatter' and content type 'application/json' to write the response.
[2022-07-04 16:07:19] [Microsoft.AspNetCore.Mvc.Infrastructure.ObjectResultExecutor]  [INF] Executing OkObjectResult, writing value of type 'System.Collections.Generic.List`1[[EmbyStat.Controllers.Log.LogFileViewModel, EmbyStat.Controllers, Version=0.2.0.0, Culture=neutral, PublicKeyToken=null]]'.
[2022-07-04 16:07:19] [Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker]  [INF] Executed action EmbyStat.Controllers.Log.LogController.GetLogFileList (EmbyStat.Controllers) in 6.9951ms
[2022-07-04 16:07:19] [EmbyStat.Controllers.Middleware.RequestLoggingMiddleware]  [DBG] 
Http Request Information:
Full Path:	| http://xxx.xxx.xxx.xxx:6555/api/log/list 
Status: 	| 200
UserAgent: 	| Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0
Authenticated: 	| True
Time: 		| 10.2242ms
QueryString: 	| 
Request Body: 	| 
Response Body: 	| [{"name":"log20220704.txt","size":3648301},{"name":"log20220703.txt","size":105996},{"name":"log20220702.txt","size":83623},{"name":"log20220701.txt","size":6748},{"name":"log20220630.txt","size":3712}]
[2022-07-04 16:07:19] [Microsoft.AspNetCore.Hosting.Diagnostics]  [INF] Request finished HTTP/1.1 GET http://xxx.xxx.xxx.xxx:6555/api/log/list - - - 200 - application/json;+charset=utf-8 12.9988ms
[2022-07-04 16:07:21] [Microsoft.AspNetCore.Hosting.Diagnostics]  [INF] Request starting HTTP/1.1 GET http://xxx.xxx.xxx.xxx:6555/api/log/download/log20220704.txt?anonymous=true - -
[2022-07-04 16:07:21] [Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker]  [INF] Route matched with {action = "GetZipFile", controller = "Log"}. Executing controller action with signature System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.FileContentResult] GetZipFile(System.String, Boolean) on controller EmbyStat.Controllers.Log.LogController (EmbyStat.Controllers).
[2022-07-04 16:07:21] [Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker]  [DBG] Execution plan of authorization filters (in the following order): ["None"]
[2022-07-04 16:07:21] [Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker]  [DBG] Execution plan of resource filters (in the following order): ["None"]
[2022-07-04 16:07:21] [Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker]  [DBG] Execution plan of action filters (in the following order): ["Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter (Order: -2147483648)","Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter (Order: -3000)"]
[2022-07-04 16:07:21] [Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker]  [DBG] Execution plan of exception filters (in the following order): ["EmbyStat.Common.Exceptions.BusinessExceptionFilterAttribute (Order: 0)"]
[2022-07-04 16:07:21] [Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker]  [DBG] Execution plan of result filters (in the following order): ["None"]
[2022-07-04 16:07:21] [Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker]  [DBG] Executing controller factory for controller EmbyStat.Controllers.Log.LogController (EmbyStat.Controllers)
[2022-07-04 16:07:21] [Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker]  [DBG] Executed controller factory for controller EmbyStat.Controllers.Log.LogController (EmbyStat.Controllers)
[2022-07-04 16:07:21] [Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder]  [DBG] Attempting to bind parameter 'fileName' of type 'System.String' ...
[2022-07-04 16:07:21] [Microsoft.AspNetCore.Mvc.ModelBinding.Binders.SimpleTypeModelBinder]  [DBG] Attempting to bind parameter 'fileName' of type 'System.String' using the name 'fileName' in request data ...
[2022-07-04 16:07:21] [Microsoft.AspNetCore.Mvc.ModelBinding.Binders.SimpleTypeModelBinder]  [DBG] Done attempting to bind parameter 'fileName' of type 'System.String'.
[2022-07-04 16:07:21] [Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder]  [DBG] Done attempting to bind parameter 'fileName' of type 'System.String'.
[2022-07-04 16:07:21] [Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder]  [DBG] Attempting to validate the bound parameter 'fileName' of type 'System.String' ...
[2022-07-04 16:07:21] [Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder]  [DBG] Done attempting to validate the bound parameter 'fileName' of type 'System.String'.
[2022-07-04 16:07:21] [Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder]  [DBG] Attempting to bind parameter 'anonymous' of type 'System.Boolean' ...
[2022-07-04 16:07:21] [Microsoft.AspNetCore.Mvc.ModelBinding.Binders.SimpleTypeModelBinder]  [DBG] Attempting to bind parameter 'anonymous' of type 'System.Boolean' using the name 'anonymous' in request data ...
[2022-07-04 16:07:21] [Microsoft.AspNetCore.Mvc.ModelBinding.Binders.SimpleTypeModelBinder]  [DBG] Done attempting to bind parameter 'anonymous' of type 'System.Boolean'.
[2022-07-04 16:07:21] [Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder]  [DBG] Done attempting to bind parameter 'anonymous' of type 'System.Boolean'.
[2022-07-04 16:07:21] [Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder]  [DBG] Attempting to validate the bound parameter 'anonymous' of type 'System.Boolean' ...
[2022-07-04 16:07:21] [Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder]  [DBG] Done attempting to validate the bound parameter 'anonymous' of type 'System.Boolean'.
[2022-07-04 16:07:21] [Microsoft.EntityFrameworkCore.Database.Command]  [DBG] Creating DbCommand for 'ExecuteReader'.
[2022-07-04 16:07:21] [Microsoft.EntityFrameworkCore.Database.Command]  [DBG] Created DbCommand for 'ExecuteReader' (0ms).
[2022-07-04 16:07:21] [Microsoft.EntityFrameworkCore.Database.Command]  [DBG] Executing DbCommand [Parameters=[], CommandType='"Text"', CommandTimeout='30']
SELECT "m"."Id", "m"."CachePath", "m"."CanLaunchWebBrowser", "m"."CanSelfRestart", "m"."CanSelfUpdate", "m"."HardwareAccelerationRequiresPremiere", "m"."HasPendingRestart", "m"."HasUpdateAvailable", "m"."HttpServerPortNumber", "m"."HttpsPortNumber", "m"."InternalMetadataPath", "m"."ItemsByNamePath", "m"."LocalAddress", "m"."LogPath", "m"."OperatingSystem", "m"."OperatingSystemDisplayName", "m"."ProgramDataPath", "m"."ServerName", "m"."SupportsAutoRunAtStartup", "m"."SupportsHttps", "m"."SupportsLibraryMonitor", "m"."SystemUpdateLevel", "m"."TranscodingTempPath", "m"."Version", "m"."WanAddress", "m"."WebSocketPortNumber"
FROM "MediaServerInfo" AS "m"
LIMIT 2
[2022-07-04 16:07:21] [Microsoft.EntityFrameworkCore.Database.Command]  [INF] Executed DbCommand (0ms) [Parameters=[], CommandType='"Text"', CommandTimeout='30']
SELECT "m"."Id", "m"."CachePath", "m"."CanLaunchWebBrowser", "m"."CanSelfRestart", "m"."CanSelfUpdate", "m"."HardwareAccelerationRequiresPremiere", "m"."HasPendingRestart", "m"."HasUpdateAvailable", "m"."HttpServerPortNumber", "m"."HttpsPortNumber", "m"."InternalMetadataPath", "m"."ItemsByNamePath", "m"."LocalAddress", "m"."LogPath", "m"."OperatingSystem", "m"."OperatingSystemDisplayName", "m"."ProgramDataPath", "m"."ServerName", "m"."SupportsAutoRunAtStartup", "m"."SupportsHttps", "m"."SupportsLibraryMonitor", "m"."SystemUpdateLevel", "m"."TranscodingTempPath", "m"."Version", "m"."WanAddress", "m"."WebSocketPortNumber"
FROM "MediaServerInfo" AS "m"
LIMIT 2
[2022-07-04 16:07:21] [Microsoft.EntityFrameworkCore.Database.Command]  [DBG] A data reader was disposed.

Понравилась статья? Поделить с друзьями:
  • Sqlite ошибка no such table
  • Sql ошибка последовательности функций
  • Sql ошибка входа пользователя гость
  • Sql ошибка 9694
  • Sql ошибка 42601