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

Thực hiện tính toán trong giá trị MySQL mặc định

Không. Giá trị của mệnh đề DEFAULT phải là một hằng số. (Một ngoại lệ đối với quy tắc này là việc sử dụng CURRENT_TIMESTAMP làm giá trị mặc định cho TIMESTAMP cột.)

Thay vào đó, bạn có thể sử dụng TRIGGER để đặt giá trị cho cột khi một hàng được chèn hoặc cập nhật.

Ví dụ:trong trình kích hoạt CHÈN TRƯỚC CHO TỪNG ROW, bạn có thể thực hiện tính toán từ các giá trị được cung cấp cho các cột khác và / hoặc dữ liệu truy vấn từ các bảng khác.

CHỈNH SỬA

Đối với ví dụ được đưa ra trong CHỈNH SỬA của câu hỏi, ví dụ về điểm bắt đầu cho định nghĩa trình kích hoạt:

CREATE TRIGGER mytable_bi 
BEFORE INSERT ON mytable 
FOR EACH ROW
BEGIN
  SET NEW.percentage = (100.0 * NEW.marks) / NULLIF(NEW.total_marks,0);
END


  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 MySQL và SQLite trong SQL

  2. Làm cách nào để đặt hai truy vấn trong một mysql_query?

  3. mysql REGEXP không khớp

  4. Khi nào sử dụng phép nối bên trái?

  5. Quyền truy cập bị từ chối đối với người dùng 'root' @ 'localhost' với PHPMyAdmin