Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Melakukan Perhitungan dalam Nilai MySQL Default

Tidak. Nilai untuk klausa DEFAULT harus berupa konstanta. (Satu-satunya pengecualian untuk aturan ini adalah penggunaan CURRENT_TIMESTAMP sebagai nilai default untuk TIMESTAMP kolom.)

Sebagai alternatif, Anda dapat menggunakan TRIGGER untuk menetapkan nilai kolom saat baris disisipkan atau diperbarui.

Misalnya, dalam pemicu BEFORE INSERT FOR EACH ROW, Anda dapat melakukan penghitungan dari nilai yang diberikan untuk kolom lain dan/atau data kueri dari tabel lain.

EDIT

Untuk contoh yang diberikan dalam EDIT pertanyaan, contoh titik awal untuk definisi pemicu:

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. Tarik kata X pertama (bukan hanya karakter) dari mySQL

  2. Cara memperbarui dari pilih dengan Gabung

  3. Lisensi MySQL dan GPL

  4. Bagaimana saya bisa menggunakan now() di Doctrine 2 DQL?

  5. Memeriksa kotak centang dari nilai basis data