SQL UPDATE Evaluation Order
Dalam pernyataan SQL UPDATE, susunan penilaian menentukan sama ada ungkapan seterusnya bergantung pada nilai yang diubah suai. Artikel ini meneroka susunan penilaian dalam pertanyaan:
UPDATE tbl SET q = q + 1, p = q;
Perintah Penilaian MySQL
Dalam MySQL, susunan penilaian ialah "kiri ke kanan." Ini bermakna ungkapan "q 1" dinilai sebelum "q" dalam tugasan kepada "p." Oleh itu, tbl.p akan ditetapkan kepada nilai q sebelum ia dinaikkan.
SQL Standard
Mengikut spesifikasi SQL92, "[The value expressions] dinilai secara berkesan untuk setiap baris T sebelum mengemas kini mana-mana baris T." Walau bagaimanapun, kenyataan ini tidak jelas dengan jelas.
Pelaksanaan dan Tingkah Laku
Walaupun standard, pelaksanaan berbeza mengikut susunan penilaiannya. Ujian telah menunjukkan bahawa pangkalan data berikut menetapkan tbl.p kepada q:
Sebaliknya, pangkalan data berikut menetapkan tbl.p kepada q 1:
Kemas Kini Pepijat dan Dokumentasi MySQL
MySQL sebelum ini telah menentang tingkah laku majoriti, tetapi pepijat telah dibangkitkan dan dokumentasi telah dikemas kini untuk mencerminkan secara eksplisit perintah penilaian "kiri ke kanan". Tingkah laku ini ditandakan sebagai perbezaan daripada Standard SQL.
Atas ialah kandungan terperinci Adakah Perintah Penilaian Penyata SQL UPDATE Mengikut Piawaian, dan Bagaimana Pangkalan Data Berbeza Mengendalikannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!