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

Trước / sau khi chèn trình kích hoạt bằng cách sử dụng trường tăng dần tự động

Cách duy nhất tôi tìm thấy để nhận được giá trị gia tăng mới không phải là một hình thức ưa thích. Tôi đã giả sử rằng bạn đang chèn một giá trị mới, vì vậy nó được giả sử là id tối đa + 1:

CREATE TRIGGER mytrigger BEFORE INSERT ON yourtable 
FOR EACH ROW BEGIN
SET NEW.thread_id = IF(
ISNULL(NEW.thread_id), 
(SELECT MAX(id) + 1 FROM yourtable), 
NEW.thread_id);
END;

Nó hoạt động với trường hợp của tôi, nếu nó NULL, nó sẽ nhận được ID tối đa + 1, đây sẽ là id mới.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhận giản đồ cơ sở dữ liệu với một truy vấn?

  2. PHP - sử dụng cột ngày giờ cập nhật STR_TO_DATE nhưng nó được cập nhật bản ghi trống như 0000-00-00 00:00:00

  3. MySqlParameter dưới dạng TableName

  4. Sắp xếp truy vấn MySQL với số

  5. Cách cài đặt CHỈ MySQL trên Debian GNU / Linux 9 (căng) mà không cần MariaDB?