I think you need to create a string variable on the function and use
EXECUTE.
---------------------------------------------------------------------------
Mick van der Most van Spijk wrote:
> Hi,
>
> I am writing an installscript and I would like to create a schema
> dynamically, based on a new input.
>
> -- this is the trigger that calls the install script
> CREATE TRIGGER tr_install_account AFTER INSERT
> ON accounts FOR EACH ROW
> EXECUTE PROCEDURE install();
>
> -- the install script
> 1 CREATE OR REPLACE FUNCTION install() RETURNS TRIGGER
> 2 AS '
> 3 BEGIN
> 4 INSERT INTO bedrijven (kvk, account) VALUES (''00000000'', NEW.account);
> 5 INSERT INTO settings (account, logo) VALUES (NEW.account, '''');
>
> 6 CREATE SCHEMA NEW.account;
> 7 RETURN NEW;
> 8 END;
> 9 ' LANGUAGE 'plpgsql';
>
> It goes wrong at line 9. I want to create a schema based on the accountname
> supplied. But i cant get it to work. Does anybody know how i get it to work
> or what reference i must read?
>
> Regards,
>
> Mick vd Most v Spijk
> --
> 'It never hurts to help' -- Eek the Cat
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/users-lounge/docs/faq.html
>
--
Bruce Momjian | http://candle.pha.pa.us
pgman@candle.pha.pa.us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073