我有一个表,其中包含30个“订单”记录。我正在尝试
[ID字段是连续的。我正在尝试使用以下无效的代码:
INSERT INTO TABLE_01 (
ID,
CONTROL_CODE,
CODE,
RULE_CODE,
CAT,
INPUT_VALUES,
UPDATER,
UPDATE_TIMESTAMP)
SELECT
(SELECT MAX(ID) FROM TABLE_01) + 1,
CONTROL_CODE,
CODE,
'SALES',
CAT,
INPUT_VALUES,
'ME',
SYSDATE
FROM
TABLE_01
WHERE
ID IN (
SELECT
ID
FROM
TABLE_01
WHERE
RULE_CODE = 'ORDERS');
任何建议将不胜感激
问题是此代码
(SELECT MAX(ID) FROM TABLE_01) + 1,
每行返回相同的值。它不会进行一次插入,而是再次运行查询,再进行第二次插入,依此类推。相反,它只运行一次查询,然后批量插入所有返回的行。如果您自己运行select语句而没有插入,则您将明白我的意思。请尝试以下方法:
(SELECT MAX(ID) FROM TABLE_01) + rownum,