вставляется в несколько таблиц базы данных одновременно - PullRequest
1 голос
/ 06 апреля 2010

можем ли мы работать с несколькими таблицами базы данных с одним и тем же объектом подключения базы данных одновременно.

предположим, что я вставил значение в таблицу 1 и одновременно вставил значение в таблицу 2 базы данных с тем же объектом подключения к базе данных.

Я использую базу данных sqlite в коде и получаю исключение заблокированной базы данных при фиксации ().

Ответы [ 2 ]

1 голос
/ 06 апреля 2010

Вам нужен один оператор на таблицу, все используют одно и то же соединение:

INSERT INTO t1(x, y, z) VALUES(1, 2, 4);
INSERT INTO t2(a, b, c) VALUES("FOO", "BAR", 2.1);

Они должны быть вставлены как одна единица работы.

Если вы вставляете значения из одного и того же объекта, вы, вероятно, делаете что-то не так. «Скажи это один раз и только один раз» предполагает, что не должно быть необходимости сохранять одно и то же значение в двух разных таблицах. Я бы вставил его один раз и использовал бы триггер, чтобы поместить его в таблицу истории или что-то в этом роде.

1 голос
/ 06 апреля 2010

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

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