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

sql, pokud je v příkazu insert bez select

Předpokládám, že vaše tabulka se jmenuje tbl.

INSERT INTO tbl (campoX ) 
    SELECT 'X' FROM DUAL 
    WHERE NOT EXISTS( 
                      SELECT campoX from tbl 
                      WHERE campoX ='X'
                     );

DUAL je čistě pro pohodlí lidí, kteří požadují, aby všechny příkazy SELECT měly FROM a případně další klauzule. MySQL může klauzule ignorovat. MySQL nevyžaduje FROM DUAL, pokud nejsou odkazovány žádné tabulky.

Jak již bylo zmíněno, můžete použít INSERT IGNORE prohlášení zde POKUD je váš campoX jedinečné pole primárního klíče.



  1. Transakce Codeigniter

  2. MySQL:Potřebuji zobrazit od 1 do maximálně n příspěvků od každého uživatele za každý den

  3. MySQL - Seskupit podle pořadí podle DESC

  4. Příklady převodu ‚date‘ na ‚datetime‘ v SQL Server (T-SQL)