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

Không thay thế thành có một mệnh đề where?

Tôi có thể thấy rằng bạn đã giải quyết được vấn đề của mình, nhưng để trả lời câu hỏi ban đầu của bạn:

REPLACE INTO không WHERE mệnh đề.

REPLACE INTO cú pháp hoạt động chính xác như INSERT INTO ngoại trừ việc mọi hàng cũ có cùng khóa chính hoặc khóa duy nhất sẽ tự động bị xóa trước khi hàng mới được chèn.

Điều này có nghĩa là thay vì WHERE , bạn nên thêm khóa chính vào các giá trị đang được thay thế để hạn chế cập nhật của bạn.

REPLACE INTO myTable (
  myPrimaryKey,
  myColumn1,
  myColumn2
) VALUES (
  100,
  'value1',
  'value2'
);

... sẽ cung cấp kết quả tương tự như ...

UPDATE myTable
SET myColumn1 = 'value1', myColumn2 = 'value2'
WHERE myPrimaryKey = 100;

... hoặc chính xác hơn:

DELETE FROM myTable WHERE myPrimaryKey = 100;
INSERT INTO myTable(
  myPrimaryKey,
  myColumn1,
  myColumn2
) VALUES (
  100,
  'value1',
  'value2'
);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khởi tạo cơ sở dữ liệu khởi động mùa xuân MySQLException cho trình kích hoạt

  2. Mã lỗi MySQL 1235

  3. Làm thế nào để tạo một hàm thêm bạn / hủy kết bạn trong PHP?

  4. PHP-MySQL-Làm thế nào để tăng trường số nguyên MySQL một cách an toàn?

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