在HSLQDB v 2.3.1中,有一个create type
子句用于定义UDT。但是就文档而言似乎没有alter type
子句(如果我尝试这个,db会返回unexpected token
错误。)
是否可以在HSQLDB中修改/删除UDT?如果我最初创建
,最佳做法是什么create type CURRENCY_ID as char(3)
因为我决定使用ISO代码。但后来我确实决定将代码存储为整数。在我的数据库中修改模式的最佳方法是什么? (这是一个合成的例子,显然我不会在这种情况下使用整数。)
我想我可能会这样做
alter table inventory alter column ccy set data type int
drop type CURRENCY_ID
create type CURRENCY_ID as int
alter table inventory alter column ccy set data type CURRENCY_ID
但有更好的方法吗?
答案 0 :(得分:0)
尝试各种方法后,我最终编写了一个脚本来直接编辑数据库的*.script
文件。它是一个带有SQL命令的纯文本文件,可以通过编程方式重新创建数据库。详细说明:
shutdown compact
create type XXX as int
至create type XXX as char(4)
insert into table XXX values (i,...)
替换为insert into table XXX values('str',...)
。这是通过一个脚本完成的,该脚本具有从旧(int)值到新(char)值的映射。identity
语句中删除create table
指令,而且我还必须删除一个{{1}的行}}。alter table XXX alter column YYY restart sequence 123
这不是很好,但它确实奏效了。优点:
缺点
shutdown compact
文件的人。