eu sei sobre insert ignore
. Isso é inútil, porque MariaDB não considera NULL como parte do índice uniqude.
Por isso tenho que usar if ... else
.
Mas este código não é executado:
select *
from Nodes
where `Key` = 'FAQPage';
if not found_row() then
insert into Nodes (`Key`, ParentId)
values ('FAQPage', null)
end if;
Como posso usar if ... else
para inserir dados condicionalmente no MariaDB?
@key
e@parentid
são espaços reservados para os valores a serem inseridos.Portanto, se a linha com os valores a serem inseridos já existe, a subconsulta detecta isso e nenhuma linha é inserida.