MySQL INSERT somente se dois campos não coincidirem
Olá pessoal, tudo bem.
Me ajuda, por favor! uma ideia um caminho ou uma solução.
Desde já agradeço-lhes.
Preciso de um único registro com LISTA e ID atualizando apenas o TOKEN se tiver mudado.
o campo TOKEN tem uma função em PHP que atualiza mensalmente, por isso é o unico campo que pode mudar depois de incluido na tabela.
LISTA ID TOKEN
1 1525 xyz43x (Primeiro click no botão lista 1)
1 1525 45xopx (Segundo click no botão lista1 deve UPDATE apenas no campo TOKEN)
2 1525 45xopx (Primeiro click no botão lista 2 inclui na lista com o mesmo TOKEN, mas a lista é diferente OK
1 9999 oppx48 OK
2 9999 oppx48 OK
#1 - Já tentei usar ON DUPLICATE KEY UPDATE - UNIQUE index LISTA depois testei co ID sem sucesso.
$stmt = $conn->prepare("INSERT IGNORE INTO table (lista,id,token)
VALUES (:lista,:id,:token)
ON DUPLICATE KEY UPDATE token = :token");
obs: Em geral, você deve tentar evitar usar uma cláusula ON DUPLICATE KEY UPDATE em tabelas com vários índices exclusivos.
#2 Utilizando IGNORE statement - UNIQUE index LISTA depois testei co ID sem sucesso.
ALTER TABLE table ADD UNIQUE INDEX(LISTA, ID);
INSERT IGNORE INTO table (columns) VALUES (...)
Discussão (1)
Carregando comentários...