Firebird PHP自动增量生成器
我有一个密钥ID,它将是Firebird数据库的一个自动递增的唯一ID,我有一个Firebird制作的生成器,已经可以很好地工作了,我想在db中为新记录写入ID。所以基本上我想用这个递增生成器得到正确的值,但我不知道如何调用。产品是发电机Firebird PHP自动增量生成器,php,generator,firebird,Php,Generator,Firebird,我有一个密钥ID,它将是Firebird数据库的一个自动递增的唯一ID,我有一个Firebird制作的生成器,已经可以很好地工作了,我想在db中为新记录写入ID。所以基本上我想用这个递增生成器得到正确的值,但我不知道如何调用。产品是发电机 $q = ibase_query("SELECT * FROM PRODUCT_SORSZAM"); echo $q; 可以使用以下命令获取下一个生成器值: SELECT GEN_ID(PRODUCT_SORSZAM,1) FROM RDB$DATABASE
$q = ibase_query("SELECT * FROM PRODUCT_SORSZAM");
echo $q;
可以使用以下命令获取下一个生成器值:
SELECT GEN_ID(PRODUCT_SORSZAM,1) FROM RDB$DATABASE; Or
SELECT NEXT VALUE FOR PRODUCT_SORSZAM FROM RDB$DATABASE;
我假设PRODUCT_SORSZAM是生成器的名称,而不是表的名称。我这样做的方法是使用触发器填充“target”表上的ID字段,然后在插入查询中使用return,如下所示: 触发器(假设TNAME是带有target ID字段的表,TNAME\u GEN\u ID是生成器): 然后插入查询将类似于:
INSERT INTO TNAME (FIELD_1, FIELD_2, ...) VALUES (VALUE_1, VALUE_2, ...)
RETURNING ID
这仅适用于Firebird 2.0(带有“值”),或者,如果要使用单例选择作为插入的值源,则适用于Firebird 2.1。
文件:
希望这有帮助
CREATE TABLE test
(
field1 integer not null,
field2 char(10),
PRIMARY KEY (field1)
);
CREATE GENERATOR gen_test_id;
inserting values:
INSERT INTO test (field1, field2) VALUES (gen_id(gen_test_id, 1), 'testme');
只是想一想:)你为什么重复别人的答案?
CREATE TABLE test
(
field1 integer not null,
field2 char(10),
PRIMARY KEY (field1)
);
CREATE GENERATOR gen_test_id;
inserting values:
INSERT INTO test (field1, field2) VALUES (gen_id(gen_test_id, 1), 'testme');
CREATE TABLE test ( field1 integer not null, field2 char(10), PRIMARY KEY (field1) );
CREATE GENERATOR gen_test_id; inserting values:
INSERT INTO test (field1, field2) VALUES (gen_id(gen_test_id, 1), 'testme');