पाठ 21 / 28

बाध्यताएँ (Constraints)

UNIQUE, CHECK, NOT NULL, और cascading deletes।

UNIQUE, CHECK, NOT NULL

बाध्यताएँ ख़राब डेटा को संग्रहीत होने से पहले ही रोक देती हैं।

CREATE TABLE products (
  id INT AUTO_INCREMENT PRIMARY KEY,
  sku VARCHAR(20) UNIQUE NOT NULL,
  price DECIMAL(10,2) CHECK (price >= 0)
);

Cascading deletes

ON DELETE CASCADE पैरेंट पंक्ति हटते ही उससे जुड़ी चाइल्ड पंक्तियों को अपने-आप हटा देता है।

CREATE TABLE order_items (
  id INT AUTO_INCREMENT PRIMARY KEY,
  order_id INT NOT NULL,
  product_id INT NOT NULL,
  quantity INT NOT NULL,
  FOREIGN KEY (order_id) REFERENCES orders(id)
    ON DELETE CASCADE
);

Cascade सावधानी से उपयोग करें

Cascading delete सुविधाजनक हैं, पर पैरेंट पर एक ही DELETE चुपचाप बहुत सारा संबंधित डेटा मिटा सकता है — सावधानी से उपयोग करें।