Кіріспе

SQL UPDATE операторы кестедегі бір немесе бірнеше жазбаның деректерін өзгертеді. Барлық қатарларды жаңартуға болады немесе шартты пайдалану арқылы кіші жиынтығын таңдауға болады. UPDATE операторының мынадай пішімі бар:

UPDATE кесте_атауы SET баған_атауы = мән [, баған_атауы = мән ] [WHERE шарт]

UPDATE сәтті орындалуы үшін пайдаланушының кестеде немесе бағанда деректерді өңдеу құқықтары (UPDATE құқықтары) болуы керек, сондай-ақ жаңартылған мән барлық қолданылатын шектеулермен (бірінші кілттер, бірегей индекстер, CHECK шектеулері және NOT NULL шектеулері сияқты) қақтығыс тудырмауы керек. Кейбір деректер базаларында, мысалы PostgreSQL, FROM өрнегі болғанда, мақсатты кесте fromlist-те көрсетілген кестелермен біріктіріледі, ал біріктірудің әрбір нәтижелік қатары мақсатты кестеге жаңарту операциясын білдіреді. FROM қолданғанда, біріктірудің әр өзгертілетін қатар үшін ең көп дегенде бір нәтижелік қатар шығаратынына көз жеткізу керек. Яғни, мақсатты қатар басқа кестеден бірден артық қатармен біріктірілмеуі керек. Егер біріктірілсе, мақсатты қатарды жаңарту үшін біріктіру қатарларының тек біреуі ғана қолданылады, бірақ қайсысы қолданылатынын болжау қиын. Осы белгісіздік себепті, басқа кестелерге тек қосалқы сұраулар ішінде сілтеме жасау қауіпсіз, бірақ көбінесе оқуға қиын және біріктіруді пайдаланудан баяу болады. MySQL ANSI стандартына сәйкес келмейді.

Мүмкін болатын мәселелер

Хэллоуин мәселесін қараңыз. WHERE шарттары мен бір немесе бірнеше SET шарттары өзара байланысқан индексті қолданғанда, кейбір UPDATE операторлары шексіз циклге түсуі мүмкін.