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

MySQL INSERT nếu không tồn tại (không sử dụng khóa chính)

1) Bạn có thể thêm một UNIQUE không ràng buộc về (myid, theirid) ? Nếu có, hãy thêm ràng buộc này và sử dụng:

INSERT INTO mytable (myid, theirid) 
  VALUES (5, 1) ;

và bỏ qua các cảnh báo về sản phẩm (hoặc thay thế ở trên bằng INSERT IGNORE )

2) Nếu bạn không thể thêm một ràng buộc như vậy (ví dụ:đôi khi bạn muốn cho phép các bản sao như vậy và những lần khác thì không), bạn có thể sử dụng điều này:

INSERT INTO mytable (myid, theirid) 
  SELECT 5, 1 
  FROM dual 
  WHERE NOT EXISTS
        ( SELECT *
          FROM mytable
          WHERE myid = 5
            AND theirid = 1
        ) ; 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để lấy nhiều bản ghi so với một bản ghi dựa trên mối quan hệ?

  2. Hai cột autoincrements hoặc autoincrement và cùng một giá trị trong cột khác

  3. Làm thế nào để cập nhật một trang web mà không cần tải lại trang web bằng AJAX?

  4. Cakephp:trong khi chèn trường tinyint. Chỉ nhận được 0 hoặc 1

  5. Mysql Làm cách nào để bạn tạo một chỉ mục được phân cụm?