我无法弄清楚如何从包含来自不同表的序列的记录中将数据插入到新表中。具体来说,我有一个名为customers_f
的表,我正在尝试按照
INSERT INTO customers_f(billing_account_num)
VALUES(billing_account_num.CURRVAL);
由于序列与bill_tos_f表有关,因此无效。如何设置将billing_account_num
的{{1}}值放入我的'customers_f'表中?
下面我发布了bill_tos_f中的信息,包括表格本身,处理bill_tos_f
的序列和billing_account_num
的插入。提前谢谢!
bill_tos_f
答案 0 :(得分:0)
在Oracle中,序列不依赖于列,它们是独立的对象。以下SQL语句应该适合您。
INSERT INTO customers_f(billing_account_num)
VALUES(bill_tos_f_bill_acc_num_seq.CURRVAL);
但是,如果您可以使用PLSQL块,那会更好。
DECLARE
v_seqval NUMBER;
BEGIN
v_seqval := bill_tos_f_bill_acc_num_seq.NEXTVAL;
INSERT INTO bill_tos_f(billing_account_num, bill_to_first_name, bill_to_middle_name, bill_to_last_name, bill_to_street, bill_to_city, bill_to_state, bill_to_zip, bill_to_country)
VALUES(v_seqval, 'mike', 'row', 'smith', '983 Circle Point', 'Atlanta', 'GA', '3825', 'USA');
INSERT INTO customers_f(billing_account_num)
VALUES(v_seqval);
END;