使用PostgreSql中的Create Table调用用户定义的函数

时间:2014-11-24 14:34:16

标签: postgresql

在PostgreSql中创建表时,我在调用用户定义的函数时遇到错误

功能是:

CREATE OR REPLACE FUNCTION nextval_special()
  RETURNS text AS
 SELECT 'T'||to_char(nextval('entity_collector_team_team_code_seq'), 'FM10000')

 LANGUAGE sql VOLATILE

 COST 100;

表是:

CREATE TABLE testtable1
(
id integer,
  teamcode   AS (dbo.nextval_special())
  )

我收到以下错误:

  

错误:“AS”处或附近的语法错误

     

第4行:团队代码AS(dbo.nextval_special())

entity_collector_team_team_code_seq它生成序列号的序列,如1。 创建表后,我希望输出顺序为T10001和T10002。

先谢谢

1 个答案:

答案 0 :(得分:1)

Postgres没有计算列。

您可能需要为列指定一个默认值:

CREATE TABLE testtable1
(
  id        integer,
  teamcode  text not null default dbo.nextval_special()
);