Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chèn MySQL trên bản cập nhật trùng lặp cho khóa không phải CHÍNH

Bạn cần một truy vấn để kiểm tra xem có tồn tại bất kỳ hàng nào với bạn record_id (hoặc person_id) hay không. Nếu tồn tại, hãy cập nhật nó, nếu không hãy chèn hàng mới

IF EXISTS (SELECT * FROM table.person WHERE record_id='SomeValue')
    UPDATE table.person 
    SET some_text='new_some_text', some_other_text='some_other_text' 
    WHERE record_id='old_record_id'
ELSE
    INSERT INTO table.person (record_id, person_id, some_text, some_other_text) 
    VALUES ('new_record_id', 'new_person_id', 'new_some_text', 'new_some_other_text')

Một cách tiếp cận khác tốt hơn là

UPDATE table.person SET (...) WHERE person_id='SomeValue'
IF ROW_COUNT()=0
    INSERT INTO table.person (...) VALUES (...)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. nhận giá trị từ cơ sở dữ liệu MySQL với PHP

  2. Mysql:Làm thế nào để truy vấn một cột có kiểu là bit?

  3. cấp quyền truy cập từ xa cơ sở dữ liệu MySQL từ bất kỳ địa chỉ IP nào

  4. Cách đặt lại mật khẩu gốc MySQL

  5. truy vấn mysql của một ngày, giữa hai trường ngày