sql >> Database >  >> RDS >> Mysql

MySQL:invoegen waar niet bestaat

Gebruik insert . . . select :

INSERT INTO USER (name, email)
    SELECT 'John', '[email protected]'
    WHERE NOT EXISTS
        (SELECT id FROM USER WHERE email = '[email protected]');

Ik zou dit schrijven als:

INSERT INTO USER (name, email)
    SELECT name, email
    FROM (SELECT 'John' as name, '[email protected]' as email) t
    WHERE NOT EXISTS (SELECT 1 FROM USER u WHERE u.email = t.email);

Maar een betere benadering is waarschijnlijk om gewoon een unieke index in te voeren, zodat de database de gegevens beschermt:

create unique index idx_users_email on user(email);


  1. installeer zowel mysql als mysqlnd op ubuntu 12.04

  2. mysql5.58 unstart server in mac os 10.6.5

  3. Reset het root-wachtwoord van MySQL op Windows

  4. Tijdzones volledig negeren in Rails en PostgreSQL