// PDOオブジェクトを作成する
$dsn = 'pgsql:host=localhost;dbname=mydatabase';
$username = 'myusername';
$password = 'mypassword';
$options = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
);
$dbh = new PDO($dsn, $username, $password, $options);
// 一時テーブルを作成する
$tmp_table_name = "tmp_mytable_" . time();
$query = "CREATE TEMP TABLE " . $tmp_table_name . " AS SELECT DISTINCT ON (column1, column2, ...) * FROM mytable";
$dbh->exec($query);
// 本テーブルを一旦削除する
$query = "DROP TABLE mytable";
$dbh->exec($query);
// 一時テーブルから本テーブルを再作成する
$query = "CREATE TABLE mytable AS SELECT * FROM " . $tmp_table_name;
$dbh->exec($query);
// 一時テーブルを削除する
$query = "DROP TABLE " . $tmp_table_name;
$dbh->exec($query);
// データベース接続を閉じる
$dbh = null;