Mysql
 sql >> база данни >  >> RDS >> Mysql

Необходимо е преносимо решение за SQL upsert (вмъкване+актуализация).

Единственото напълно независимо от базата данни решение, използващо донякъде модерни бази данни, е да извикате Update и след това Insert с две операции. Някои бази данни не позволяват множество оператори, изпратени в една операция, а някои бази данни може да не върнат броя на редовете, засегнати от актуализацията, така че не бих разчитал на това.

Update MyTable
Set Data = 'Data'
Where KeyCol = 'key';

(отделно обаждане)

Insert Into MyTable(KeyCol, Data)
Select 'key', 'Data'
From ( Select 1 As Value ) As Z
Where Not Exists    (
                    Select 1
                    From MyTable As T1
                    Where T1.KeyCol = 'key'
                    );


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Минимални GRANTs, необходими на mysqldump за изхвърляне на пълна схема? (Липсват тригери!!)

  2. Symfony 3 - Възникна изключение в драйвера:не можа да се намери драйвер

  3. 8-те най-популярни бази данни

  4. Mac OS X + Python + Django + MySQL

  5. Как да сравним схемите на базата данни на MySQL