شرح صفوف ومحتوى الفقرة
يدعم MySQL 8 ميزة هندسية قوية جداً هي الأعمدة المولدة تلقائياً (Generated Columns)، وهي أعمدة تُحسب قيمتها آلياً بواسطة معادلة تعتمد على أعمدة أخرى داخل نفس الصف:
- الصيغة القياسية:
col_name type GENERATED ALWAYS AS (expr) [VIRTUAL | STORED]. - اتساق حسابي مضمون بنسبة 100%: لا تُمرر قيم الأعمدة المولدة يدوياً في جمل
INSERTأوUPDATE؛ بل يتولى المحرك حسابها وتحديثها تلقائياً كلما تغيرت الأعمدة الداخلة في معادلتها.
SQL
CREATE TABLE store_order_items (
order_id INT UNSIGNED NOT NULL,
product_id INT UNSIGNED NOT NULL,
qty SMALLINT UNSIGNED NOT NULL DEFAULT 1,
unit_price DECIMAL(10, 2) NOT NULL,
line_total DECIMAL(12, 2)
GENERATED ALWAYS AS (qty * unit_price) VIRTUAL,
PRIMARY KEY (order_id, product_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;