3

単純な質問ですが、残念ながらグーグルや RTFMing で答えを見つけることができません。

別のテーブルの最初の ID に基づくデフォルト値を持つ列を作成したいと考えています。

悲しいことに、「エラー:デフォルト式でサブクエリを使用できません」というようなものです

ALTER TABLE foobar 
      ADD COLUMN foo INTEGER DEFAULT (SELECT id FROM blubb LIMIT 1); 

問題は、'blubb' が 0 または 1 で始まると単純に仮定できないことです。後でこれに CONSTRAINT を設定したいと考えています。

4

1 に答える 1

6

簡単な答え: 関数を使用します。

例:

  CREATE TABLE foo (id serial primary key);

  CREATE OR REPLACE FUNCTION max_foo() RETURNS int LANGUAGE SQL AS
  $$ SELECT max(id) FROM foo; $$;

  CREATE TABLE bar(id int not null default max_foo());
于 2013-11-09T12:50:35.817 に答える