Interbase如何将guid字段添加到现有表中

时间:2014-01-30 20:53:35

标签: sql interbase

我有一个旧的现有interbase表,我想添加一个主键字段并填充它。有没有办法在SQL语句中完成所有操作(如SQL Server)。例如:

ALTER TABLE IBUSERS ADD IBUSERSPK VARCHAR(32) default (newid()) NOT NULL

据我所知,在interbase中newid函数不存在,除非我遗漏了什么。

我正在使用IBExpert并且还有IBConsole。

或者我是否因为在创建代码后在代码中填充此字段而感到困惑?

感谢。

1 个答案:

答案 0 :(得分:0)

看来interbase没有简单的方法来填充一个guid字段。因此,解决方案是在数据库中创建自己的UDF函数以创建随机guid。然后它变成了一个三步过程:

将字段添加到表格

ALTER TABLE IBUSERS ADD IBUSERSPK  VARCHAR(32) NOT NULL

使用UDF填充新字段:

UPDATE IBUSERS SET IBUSERSPK = GETGUID()

如果是,则添加主键约束:

ALTER TABLE  IBUSERS ADD CONSTRAINT PK_IBUSERS PRIMARY KEY (IBUSERSPK)

关于这个的好处是,这个函数可以在数据库中的任何时间/任何地方使用。