Isso inserirá novos campos de Nome que não estavam anteriormente na tabela Matriz.
INSERT IGNORE
INTO AdminAccounts (Name)
SELECT Name
FROM Matrix;
Se você não confia em INSERT IGNORE, existe uma alternativa onde você pode manifestar os novos valores de Name antes de inseri-los:
CREATE TABLE NewName SELECT Name FROM Matrix WHERE 1=2;
INSERT INTO NewName
SELECT Name FROM AdminAccounts A
LEFT JOIN Matrix B USING (Name)
WHERE B.Name IS NULL;
INSERT INTO Matrix (Name) SELECT Name FROM NewNames;
A tabela NewNamecoleta apenas as tabelas AdminAccountsque não estão Matrixno momento. Isso pode dar a você a chance de examinar os novos nomes. Depois, você pode INSERIR tudo no NewNameMatrix.
Isso inserirá novos campos de Nome que não estavam anteriormente na tabela Matriz.
Se você não confia em
INSERT IGNORE
, existe uma alternativa onde você pode manifestar os novos valores de Name antes de inseri-los:A tabela
NewName
coleta apenas as tabelasAdminAccounts
que não estãoMatrix
no momento. Isso pode dar a você a chance de examinar os novos nomes. Depois, você pode INSERIR tudo noNewName
Matrix.Se você tornar o campo 'name' em 'AdminAccounts' uma chave primária ou índice exclusivo, você pode simplesmente usar
Assim, se um nome não existir na tabela ele será inserido; se existir, a linha antiga é excluída e a nova é inserida.