Eu tenho uma consulta SQL onde desejo inserir várias linhas na consulta única. então eu usei algo como:
$sql = "INSERT INTO beautiful (name, age)
VALUES
('Helen', 24),
('Katrina', 21),
('Samia', 22),
('Hui Ling', 25),
('Yumie', 29)";
mysql_query( $sql, $conn );
O problema é que, quando executo essa consulta, desejo verificar se uma UNIQUE
chave (que não é a PRIMARY KEY
), por exemplo 'name'
, acima, deve ser verificada e, se 'name'
já existe, a linha inteira correspondente deve ser atualizada caso contrário.
Por exemplo, no exemplo abaixo, se 'Katrina'
já estiver presente no banco de dados, a linha inteira, independentemente do número de campos, deve ser atualizada. Novamente, se 'Samia'
não estiver presente, a linha deve ser inserida.
Eu pensei em usar:
INSERT INTO beautiful (name, age)
VALUES
('Helen', 24),
('Katrina', 21),
('Samia', 22),
('Hui Ling', 25),
('Yumie', 29) ON DUPLICATE KEY UPDATE
Aqui está a armadilha. Fiquei preso e confuso sobre como proceder. Eu tenho várias linhas para inserir / atualizar de cada vez. Por favor me dê uma direção. Obrigado.