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

thay đổi auto_increment trong cùng một bảng bằng cách sử dụng truy vấn con mysql

Trình phân tích cú pháp không hỗ trợ truy vấn con ở nơi bạn đang cố gắng sử dụng nó.

Đây là đoạn trích từ nguồn MySQL, từ sql / sql_yacc.yy:

create_table_option:
    . . .
    | AUTO_INC opt_equal ulonglong_num

Những gì bạn nên đọc ở đó là AUTO_INCREMENT tùy chọn bảng chỉ chấp nhận một số chữ duy nhất, không phải một biểu thức hoặc một truy vấn con hoặc một biến hoặc bất kỳ thứ gì khác. Vì vậy, bạn chỉ không thể đặt AUTO_INCREMENT trong cùng một câu lệnh mà bạn thực hiện SELECT MAX(id)+1 .

Nhưng bạn không cần phải làm như vậy.

MySQL sẽ không bao giờ cấp phát id tăng tự động nhỏ hơn giá trị lớn nhất hiện tại trong bảng. Vì vậy, nếu bạn có một bảng có giá trị id 102, giá trị tiếp theo được phân bổ sẽ là ít nhất là 103.

Bạn thậm chí có thể thử đặt AUTO_INCREMENT =50 một cách rõ ràng, nhưng điều đó sẽ được tự động tăng lên MAX (id) +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. Sự khác biệt giữa đá quý mysql và mysql2 là gì

  2. Bộ nhớ đệm cơ sở dữ liệu thông minh (?)

  3. Diệt hoặc dừng các truy vấn MySQL sau khi thoát khỏi tập lệnh PHP

  4. Chọn tất cả các hàng ngoại trừ một hàng trong MySQL

  5. Sự cố mysql Wildfly 8.0.0 với nguồn dữ liệu