Есть ли в SQLite метод выбора и обновления (или обновления и выбора) с одним оператором?
Триггер может вызывать select, но это не позволяет использовать обновление ввыражение:
CREATE TABLE id ( a integer );
CREATE TRIGGER idTrig AFTER UPDATE ON id BEGIN SELECT old.a FROM id; END;
INSERT INTO id VALUES ( 100 );
INSERT INTO test VALUES ( (UPDATE id SET a=a+1) ); -- syntax error
(Доступен ли сработавший выбор только через C API?)
Я генерирую идентификаторы объектов для нескольких баз данных из одной базы данных идентификаторов (с одной строкой для следующегодоступный идентификатор).Я хотел бы выбрать и обновить идентификатор БД в одном операторе, чтобы у параллельных соединений БД, которые присоединяют БД идентификатора, не возникало проблем с этим (когда два подключения можно было вставить перед любым обновлением):
INSERT INTO tab VALUES ( (SELECT uuid||oid AS oid FROM id.tab), ... );
UPDATE id.tab SET oid = oid+1;