我有以下程序
create or replace
procedure prod_add_sp
(p_idproduct in bb_product.idproduct%type,
p_prodname in bb_product.productname%type,
p_descrip in bb_product.description%type,
p_prodimage in bb_product.productimage%type,
p_prodprice in bb_product.price%type,
p_prodactive in bb_product.active%type)
is
begin
insert into bb_product(idproduct,productname,description,productimage,price,active)
values (p_idproduct,p_prodname,p_descrip,p_prodimage,p_prodprice,p_prodactive);
commit;
end;
如何使用seq.nextval
部分修改上述内容,以便在执行时插入带有唯一主键的新行? IDPRODUCT
是主键,因此需要它。
答案 0 :(得分:1)
创建一个名称为nextID的序列。 现在使用以下代码:
create or replace procedure prod_add_sp (p_idproduct in bb_product.idproduct%type, p_prodname in bb_product.productname%type, p_descrip in bb_product.description%type, p_prodimage in bb_product.productimage%type, p_prodprice in bb_product.price%type, p_prodactive in bb_product.active%type) is
begin
insert into bb_product(idproduct,productname,description,
productimage,price,active)
values (nextID.nextVal,p_prodname,p_descrip,
p_prodimage,p_prodprice,p_prodactive);
commit;
end;
答案 1 :(得分:1)
您需要先创建一个序列,即:
CREATE SEQUENCE productsID_seq
START WITH 0
INCREMENT BY 1
NOMAXVALUE;
然后在values (...
行:
insert into bb_product(idproduct,productname,description,productimage,price,active)
values (productsID_seq.nextval,...
的一些好消息
答案 2 :(得分:0)
您必须先创建SEQUENCE。然后,您可以在idproduct列中使用sequencename.nextval。