sql >> Databáze >  >> RDS >> Mysql

Proveďte mysql insert, pouze pokud je tabulka prázdná

Ve vašem příkazu je syntaktická chyba:

INSERT INTO `statuses`
    (SELECT  'Something', 'Something else', 123
     WHERE NOT EXISTS (SELECT * FROM `statuses`)
    ) union all
    (SELECT 'Something', 'Something else', 234
     WHERE NOT EXISTS (SELECT * FROM `statuses`)
    );

Musíte zopakovat where v tomto případě dvakrát, jednou pro každý dílčí dotaz. Můžete také:

INSERT INTO `statuses`
    select t.*
    from ((SELECT  'Something' as col1, 'Something else' as col2, 123 as col3
          ) union all
          (SELECT 'Something', 'Something else', 234
          )
         ) t
    WHERE NOT EXISTS (SELECT * FROM `statuses`);

V této verzi musíte sloupcům přiřadit názvy.

Nebo můžete použít dva samostatné příkazy vložení.



  1. Jak funguje pg_typeof() v PostgreSQL

  2. Použití PIVOT v SQL Server 2008

  3. Postgresql - zálohování databáze a obnova u jiného vlastníka?

  4. mysql join table query 2 values