2

我正在处理的数据库最初是(由其他人)将所有主键(和关联的外键)作为字符串进行原型设计的。键确实需要是数字的。

该数据库有 16 个表,其中包含最少的测试数据。所有数据在关键字段中都有数字。

我解决这个问题的最简单方法是什么?

4

2 回答 2

1

不确定“最小测试数据”的确切含义,但您可以使用 SQL Developer 执行此操作:

  1. 导出表 DDL
  2. 将数据导出为插入语句
  3. 修改 1 中生成的 DDL 脚本,将您的列更新为 NUMBER 类型
  4. 删除并重新创建架构
  5. 从 3 到 2 应用脚本。
于 2012-11-22T01:29:46.970 回答
0

我创建了一个 SQL 脚本来对单个关联进行更改,然后我将对其进行修改并重复 20 次以上。

我做了第一个表(MODULES.ID 到 MODULE_SESSIONS.MODULE_ID 关联)并且它有效。这是我使用的脚本:

alter table MODULE_SESSIONS drop constraint FK_MODULE_MODULE_SESSION_FK1;
alter table MODULES drop constraint MODULES_PK;
alter table MODULES rename column ID to OLD;
alter table MODULES add ID INTEGER;
update MODULES set ID = OLD;
alter table MODULES drop column OLD;
alter table MODULE_SESSIONS rename column MODULE_ID to OLD;
alter table MODULE_SESSIONS add MODULE_ID INTEGER;
update MODULE_SESSIONS set MODULE_ID = OLD;
alter table MODULES add constraint MODULE_PK primary key(ID); 
alter table MODULE_SESSIONS add constraint FK_MODULE_MODULE_SESSION_FK1 foreign key(MODULE_ID) references MODULES(ID);
alter table MODULE_SESSIONS drop column OLD;
于 2012-11-26T19:04:19.017 回答