Преобразование запроса MySQL в PostgreSQL

У меня такой запрос:

DROP TABLE IF EXISTS tmp_table;
CREATE TEMPORARY TABLE tmp_table(id int primary key) 
IGNORE (
   SELECT user2role.userid AS userid
     FROM user2role 
    INNER JOIN users ON users.id=user2role.userid 
    INNER JOIN role ON role.roleid=user2role.roleid 
    WHERE role.parentrole like 'H1::H2::H3::H4::H5::%') 
UNION (
   SELECT groupid
     FROM groups
    WHERE groupid IN (2,3,4));

Этот запрос был изначально написан в MySQL и вместо DROP TABLE IF EXISTS он использовал IF NOT EXISTS. Я изменил эту часть, но не знаю, что делать с IGNORE.

Во-первых, что делает IGNORE?

Я пытался найти эквиваленты в PostgreSQL, но все они, похоже, связаны со сложными процедурами. Должен ли я написать процедуру для этого? И если мне придется ее написать, то как она будет выглядеть? Могу ли я просто эмулировать IGNORE с помощью PHP-кода? (SQL-запросы генерируются PHP.)

0
задан Erwin Brandstetter 28 September 2011 в 23:47
поделиться