使用firebird 2.0中的过程

时间:2015-03-04 19:08:35

标签: firebird procedures

我需要让我的所有产品都具有特征(ID 5)所以我试图制作一个程序,将一个表'product-caracteristics'插入一个带有它的属性的行,将所有产品ID与特征id相关联5。 那就是我到目前为止所拥有的:

BEGIN
    FOR SELECT ID-PROD FROM PRODUCT INTO :VAR1 DO
    BEGIN
        INSERT 
            INTO PRODUCT-CARACTERISTICS(
                ID-PRODUCT-CARACTERISTICS, //char9
                ID-CARACTERISTICS,         //char9
                ID-PROD,                   //char9
                DATE-CARACTERISTICS        //date
                )
            VALUES (
                '', //its a pk, so it should be automatic, right?... 
                '000000005', 
                :VAR1, 
                '04.03.2015'
                );
    END
END

另一件事,如果可能的话,我想知道如何只针对那些没有caracteristic5的产品。

(如果相关,应用程序是IBExpert,使用firebird 2.0,SQL方言3.0)提前感谢。

1 个答案:

答案 0 :(得分:0)

PK不会自动生成ID。通常,您可以使用生成器填充该字段:

create generator NUM_PRODUCT_CARACTERISTICS;

并使用它:

... VALUES (
                gen_id(NUM_PRODUCT_CARACTERISTICS, 1),
                '000000005', 
                :VAR1, 
                '04.03.2015'
                );

gen_id生成可在插入中使用的新的唯一值。

PS:表名和字段名中不允许使用“ - ”...更喜欢“_”