leaf_yxj <leaf_yxj(at)163(dot)com> writes:
> ***********************************************************
> CREATE OR REPLACE FUNCTION truncate_t (IN tablename text)
> RETURNS VOID
> AS
> $$
> BEGIN
> EXECUTE 'TRUNCATE TABLE ' || quote_ident(tablename) || 'CASCADE;';
I think you need a space there:
EXECUTE 'TRUNCATE TABLE ' || quote_ident(tablename) || ' CASCADE;';
> EXCEPTION
> WHEN undefined_table THEN
> RAISE EXCEPTION 'Table "%" does not exists', tablename;
It's really a pretty bad idea to print your own message instead of using
the system's message. In this case, you would have figured out the
problem immediately if you'd seen the real error message, which was
presumably bleating about "t1cascade".
regards, tom lane