I want to do this
INSERT INTO AdminAccounts (Name) SELECT Name FROM Matrix
But I don't want to create duplicates. ie, I ran this a few weeks ago and need to update the data.
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It only takes a minute to sign up.Sign up to join this community
This will insert new Name fields that were not previously in the Matrix table.
INSERT IGNORE INTO AdminAccounts (Name) SELECT Name FROM Matrix;
If you do not trust
INSERT IGNORE, there is an alternative where you can manifest the new Name values before inserting them:
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;
NewName collects only those tables in
AdminAccounts that are not in
Matrix at present. This can give you a chance to look over the new Names. Afterwards, you can INSERT everything in
NewName into Matrix.