sql >> データベース >  >> RDS >> PostgreSQL

Postgresデータベース内のすべてのテーブルを切り捨てる

    FrustratedWithFormsDesignerは正しいですが、PL/pgSQLはこれを行うことができます。スクリプトは次のとおりです。

    CREATE OR REPLACE FUNCTION truncate_tables(username IN VARCHAR) RETURNS void AS $$
    DECLARE
        statements 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;
    

    これにより、ストアド関数が作成され(これは1回だけ実行する必要があります)、後で次のように使用できます。

    SELECT truncate_tables('MYUSER');
    


    1. sp_reset_connectionは何をしますか?

    2. mysqlのテーブルから重複する行を削除する方法

    3. Oracle 10のローカル一時テーブル(ストアドプロシージャの範囲用)

    4. IDを使用して複数のSQLテーブルを結合するにはどうすればよいですか?