我正在处理的数据库最初是(由其他人)将所有主键(和关联的外键)作为字符串进行原型设计的。键确实需要是数字的。
该数据库有 16 个表,其中包含最少的测试数据。所有数据在关键字段中都有数字。
我解决这个问题的最简单方法是什么?
我正在处理的数据库最初是(由其他人)将所有主键(和关联的外键)作为字符串进行原型设计的。键确实需要是数字的。
该数据库有 16 个表,其中包含最少的测试数据。所有数据在关键字段中都有数字。
我解决这个问题的最简单方法是什么?
不确定“最小测试数据”的确切含义,但您可以使用 SQL Developer 执行此操作:
我创建了一个 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;