Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Prosedur tersimpan MYSQL untuk variabel pembaruan adalah 0

Masalahnya adalah bahwa parameter prosedur memiliki nama yang sama dengan kolom dalam tabel. Saat Anda merujuk ke propertyid dalam kueri, ia menggunakan kolom, bukan parameter. Nama kolom dan variabel tidak peka huruf besar/kecil, jadi tidak masalah jika Anda mengeja salah satunya PropertyID dan propertyId lainnya .

Gunakan nama yang berbeda untuk parameter, mis. p_propertyId

Juga, tidak perlu dua kueri, Anda dapat melakukannya dalam satu kueri dengan JOIN .

UPDATE sales.florida AS s
CROSS JOIN (
    SELECT *
    FROM annuals.florida
    WHERE propertyId = p_propertyId
    LIMIT 1) AS a
SET s.SitusLongitude = a.SitusLongitude, s.SitusLatitude = a.SitusLatitude
WHERE s.PROPERTYUNIQUEID = p_propertyId

Perhatikan bahwa menggunakan LIMIT tanpa ORDER BY berarti baris yang dipilih tidak dapat diprediksi.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pentingnya panjang varchar di tabel MySQL

  2. Permintaan MySQL lebih lambat setelah pembuatan indeks

  3. Bergabung dengan MySQL Lanjutan. Mempercepat kueri

  4. Bagaimana cara membuat Inner Join di Django?

  5. Bagaimana cara menyimpan data yang berisi kutipan di MySQL