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

MySQL tự động tăng trên một khóa không phải chính

Tôi đã phải đối mặt với một vấn đề tương tự khi sắp xếp một cây danh mục một cách không bình thường.

SET @seq = 0;
INSERT INTO test
  (id,  subId,            text) VALUES
  (_id, @seq := @seq + 1, 'Some text')
;

Nếu bạn cần "thêm" một hàng vào id, bạn có thể đặt @seq bằng

SELECT IFNULL(MAX(subId), 0) INTO @seq FROM test WHERE id = _id;

Điều này tất nhiên sẽ yêu cầu quản lý id bởi ứng dụng chứ không phải mySQL.

Bạn cũng có thể làm điều đó giống như khối mã cuối cùng để có được id khả dụng tiếp theo.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đang cập nhật mục nhập KHÔNG cập nhật dấu thời gian

  2. Cơ sở dữ liệu MySQL với các trường duy nhất bị bỏ qua dấu cách kết thúc

  3. IF điều kiện trong chọn truy vấn sql của tôi

  4. Tích hợp MySQL với Python trong Windows

  5. Cách di chuyển dữ liệu giữa 2 bảng / với các cột khác nhau trong các cơ sở dữ liệu khác nhau