Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengira Lajur Secara Automatik Berdasarkan Lajur Lain dalam MySQL?

Bagaimanakah Saya Boleh Mengira Lajur Secara Automatik Berdasarkan Lajur Lain dalam MySQL?

DDD
DDDasal
2025-01-17 07:51:18693semak imbas

How Can I Automatically Calculate a Column Based on Another Column in MySQL?

Kira lajur secara automatik berdasarkan lajur lain dalam MySQL

Dalam dunia pengaturcaraan pangkalan data, jadual adalah asas storan data, tetapi kadangkala adalah perlu untuk mendapatkan maklumat tambahan daripada lajur sedia ada. Di sinilah lajur yang dikira masuk, menyediakan cara untuk membuat lajur baharu yang nilainya dikemas kini secara automatik berdasarkan lajur lain.

Tetapan Pangkalan Data

Pertimbangkan borang berikut:

<code>id | value
--------------
1     6
2     70</code>

Pernyataan Masalah

Tugasnya ialah menambah lajur yang dipanggil "dikira" iaitu separuh daripada lajur "nilai". Lajur yang dikira ini harus dikemas kini secara automatik apabila lajur "nilai" berubah.

Penyelesaian: Jana lajur

MySQL 5.7.6 dan kemudiannya memperkenalkan ciri yang dipanggil "lajur terjana". Lajur ini membenarkan pengiraan dinamik berdasarkan lajur sedia ada, serupa dengan paparan, tetapi sebagai bahagian penting jadual.

Terdapat dua jenis lajur yang dijana:

  • Maya (lalai): Dikira dengan pantas apabila membaca rekod daripada jadual.
  • Storan: Dikira apabila rekod baharu dimasukkan atau dikemas kini dalam jadual.

Pencapaian

Dalam contoh ini kita akan menggunakan lajur terjana yang disimpan. Berikut ialah pernyataan SQL untuk menambahkannya:

<code>ALTER TABLE table_name ADD COLUMN calculated AS (value / 2) STORED;</code>

Ini akan membuat lajur baharu yang dipanggil "dikira" dengan separuh nilai lajur "nilai" setiap baris.

Kelebihan dan Nota

Menjana lajur mempunyai kelebihan berikut:

  • Autokemas kini: Lajur yang dikira dikemas kini secara automatik apabila lajur sumber berubah, memastikan nilai sentiasa tepat.
  • Boleh diindeks: Lajur terjana yang disimpan boleh digunakan sebagai sebahagian daripada indeks, meningkatkan prestasi pertanyaan.
  • BUKAN NULL sekatan: Kedua-dua lajur terjana maya dan tersimpan boleh mempunyai sekatan NOT NULL, memastikan integriti data.

Contoh

Selepas menambah lajur yang dikira, jadual akan kelihatan seperti ini:

<code>id | value | calculated
-----------------------
1     6       3
2     70      35</code>

Kesimpulan

Lajur yang dijana menyediakan cara yang hebat untuk menambah lajur yang dikira pada jadual. Dengan memanfaatkan pilihan "disimpan", ia memastikan lajur yang dikira dikemas kini secara automatik dan boleh diindeks, memberikan lebih fleksibiliti dan kecekapan dalam pengurusan data.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Lajur Secara Automatik Berdasarkan Lajur Lain dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn