У меня такой запрос:
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.)