我有一个旧的现有interbase表,我想添加一个主键字段并填充它。有没有办法在SQL语句中完成所有操作(如SQL Server)。例如:
ALTER TABLE IBUSERS ADD IBUSERSPK VARCHAR(32) default (newid()) NOT NULL
据我所知,在interbase中newid函数不存在,除非我遗漏了什么。
我正在使用IBExpert并且还有IBConsole。
或者我是否因为在创建代码后在代码中填充此字段而感到困惑?
感谢。
答案 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)
关于这个的好处是,这个函数可以在数据库中的任何时间/任何地方使用。