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

Chèn nhiều dữ liệu vào MySQL và cập nhật nếu hiện có

Tất cả những gì cần làm là một cuộc đụng độ chỉ mục sẽ vi phạm bản sao đối với hàng được cập nhật và không phải để tạo hàng mới. Xung đột chỉ mục có thể là một khóa chính, một khóa trên một chỉ mục khác có thể là một cột đơn hoặc chỉ mục tổng hợp trên nhiều cột.

Cho rằng những điều dưới đây là khá khập khiễng, nhưng đầy trí tưởng tượng như tôi có thể làm ngay bây giờ.

create table user
(
    id int auto_increment primary key,
    userName varchar(20) not null,
    friendCount int not null,
    unique key(userName)
);

insert user(userName,friendCount) values('Jason7',0) on duplicate key update friendCount=friendCount+1;
select * from user;
+----+----------+-------------+
| id | userName | friendCount |
+----+----------+-------------+
|  1 | Jason7   |           0 |
+----+----------+-------------+

insert user(userName,friendCount) values('Fred',0) on duplicate key update friendCount=friendCount+1;
select * from user;
+----+----------+-------------+
| id | userName | friendCount |
+----+----------+-------------+
|  1 | Jason7   |           0 |
|  2 | Fred     |           0 |
+----+----------+-------------+

insert user(userName,friendCount) values('Fred',0) on duplicate key update friendCount=friendCount+1;
+----+----------+-------------+
| id | userName | friendCount |
+----+----------+-------------+
|  1 | Jason7   |           0 |
|  2 | Fred     |           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ỗi liên kết truyền thông, Spring Boot + MySql + Docker + Hibernate

  2. Cách đặt giá trị nhiều lựa chọn từ đối tượng mảng trong yii2 khi cập nhật

  3. Tính chênh lệch thời gian giữa 2 ngày bằng phút

  4. Nhóm MySQL Theo với số N hàng đầu của mỗi loại

  5. MySQL:Chọn dữ liệu từ một bảng có ngày nằm trong Tuần hiện tại và Tháng hiện tại