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

MySQL đặt UUID id mặc định

MySQL 5.7, 8.0.12 trở lên

MySQL phiên bản 5.7 hoặc 8.0.12 không hỗ trợ sử dụng hàm hoặc biểu thức làm giá trị mặc định của cột.

https://dev.mysql.com/doc /refman/5.7/en/data-type-defaults.html

Giải pháp thay thế sẽ là sử dụng trình kích hoạt để theo dõi BEFORE INSERT của bảng mong muốn.

DELIMITER ;;
CREATE TRIGGER `foo_before_insert` 
BEFORE INSERT ON `foo` FOR EACH ROW 
BEGIN
  IF new.id IS NULL THEN
    SET new.id = uuid();
  END IF;
END;;
DELIMITER ;

Điều này sẽ thay đổi giá trị mặc định của INSERT câu lệnh cho uuid() giá trị, trừ khi nó đã được xác định rõ ràng.

MySQL 8.0.13 và mới hơn

Với phát hành MySQL 8.0.13 một biểu thức hiện có thể được sử dụng làm giá trị mặc định, miễn là nó được đặt trong dấu ngoặc đơn.

Ví dụ db <> fiddle

https://dev.mysql.com/doc /refman/8.0/en/data-type-defaults.html



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Store_result và get_result cho câu lệnh

  2. Thêm kết nối bên trong và mệnh đề where để CHÈN VÀO CẬP NHẬT KHÓA DUPLICATE

  3. Các thực thể có cùng tên, luôn chèn id đầu tiên

  4. CHỌN một cột nếu cột kia rỗng

  5. Cập nhật Xếp hạng trong bảng