Oracle 截断所有表并重置自动增量

Oracle 截断所有表并重置自动增量,oracle,truncate,Oracle,Truncate,需要为生产环境准备Oracle数据库中的所有表,需要截断所有表,并重置列的自动增量。我该怎么做呢?以下是我要做的- 运行以下命令生成truncate语句。请注意,它不会截断表 select ' truncate table ' || table_name || ';' from user_tables; 检查脚本并确保这是我想要的。然后我将运行脚本 对序列执行类似的操作,首先生成语句,如下所示: --Reset regular sequences. --(Ignore identity se

需要为生产环境准备Oracle数据库中的所有表,需要截断所有表,并重置列的自动增量。我该怎么做呢?

以下是我要做的-

运行以下命令生成truncate语句。请注意,它不会截断表

select ' truncate table  ' || table_name || ';' from user_tables;
检查脚本并确保这是我想要的。然后我将运行脚本

对序列执行类似的操作,首先生成语句,如下所示:

--Reset regular sequences.
--(Ignore identity sequences to avoid "ORA-32793: cannot alter a system-generated sequence".)
select 'alter sequence ' || sequence_name || ' restart start with 1;' v_sql
from user_sequences
where sequence_name not in (select sequence_name from user_tab_identity_cols)
order by 1;

--Reset sequences used in identity columns.
select 'alter table ' || table_name || ' modify ' ||
    '(' || column_name || ' generated by default on null as identity start with 1);' v_sql
from user_tab_identity_cols
order by 1;

这就是我要做的-

运行以下命令生成truncate语句。请注意,它不会截断表

select ' truncate table  ' || table_name || ';' from user_tables;
检查脚本并确保这是我想要的。然后我将运行脚本

对序列执行类似的操作,首先生成语句,如下所示:

--Reset regular sequences.
--(Ignore identity sequences to avoid "ORA-32793: cannot alter a system-generated sequence".)
select 'alter sequence ' || sequence_name || ' restart start with 1;' v_sql
from user_sequences
where sequence_name not in (select sequence_name from user_tab_identity_cols)
order by 1;

--Reset sequences used in identity columns.
select 'alter table ' || table_name || ' modify ' ||
    '(' || column_name || ' generated by default on null as identity start with 1);' v_sql
from user_tab_identity_cols
order by 1;

自动增量列?你说的是标识列吗?是的,是标识自动递增列吗?你是说身份栏吗?是的关于身份银行我会试试银行我会试试