Архів теґу: Firebird

[Qt+Firebird] Как установить начальное значение генератора/последовательности из клиента

В процессе работы столкнулся с необходимостью – дать возможность пользователю устанавливать начальное значение для генератора (точнее в стандарте – SEQUENCE).
Плохо это или хорошо, речь не о том.

Для этого в Interbase/Firebirde используется Продовжувати читання [Qt+Firebird] Как установить начальное значение генератора/последовательности из клиента

Как получить значение последней вставленной записи в auto_increment поле?

Зависит от версии SQL-сервера, так как разные сервера используют различные механизмы формирования последовательностей и соотвественно различные способы получения последнего вставленного значения
Например

MSAccess
[code]
SELECT @@IDENTITY
[/code]

MSSQL
[code]
set @Id = SCOPE_IDENTITY()
[/code]

Firebird
У данного сервера нет такого понятия как автоинкрементное поле – его аналогом является генераторы и функция gen_id. Генераторы работают вне контекста транзакции!!!

PostgreSQL
Используется тип SERIAL
[code]
ps# create table test (id serial,name text);
NOTICE: CREATE TABLE will create implicit sequence “test_id_seq” for serial column “test.id”
CREATE TABLE
ps# INSERT INTO test (name) VALUES (‘Один’) RETURNING id;
id
—-
1
postgres=# INSERT INTO test (name) VALUES (‘Два’) RETURNING id;
id
—-
2
(1 row)
[/code]

MySQL
[code]
SELECTLAST_INSERT_ID()
[/code]
or
[code]
mysql_insert_id()
[/code]