在postgesql中建立一个函数:
CREATE OR REPLACE FUNCTION truncate_tables(username IN VARCHAR) RETURNS void AS $$
DECLAREstatements CURSOR FOR SELECT tablename FROM pg_tables WHERE tableowner = username AND schemaname = 'public';
BEGIN
FOR stmt IN statements LOOP EXECUTE 'TRUNCATE TABLE ' || quote_ident(stmt.tablename) || ' CASCADE;'; END LOOP;
END;
$$ LANGUAGE plpgsql;
然后调用:
select truncate_tables('username')
即可。
可以在单元测试中使用这个方法用于初始化,很方便