Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एक रिकॉर्ड के DELETE के साथ जंक्शन डेटा को स्वचालित रूप से हटाएं?

एक संदर्भात्मक क्रिया की घोषणा करें:उदाहरण के लिए, ON DELETE CASCADE:

CREATE TABLE user (
    user_id int PRIMARY KEY
);

CREATE TABLE offer (
    offer_id int PRIMARY KEY
);

CREATE TABLE user_offer (
    user_id int,
    offer_id int,
    PRIMARY KEY (user_id, offer_id),
    FOREIGN KEY (user_id) REFERENCES user (user_id) ON DELETE CASCADE,
    FOREIGN KEY (user_id) REFERENCES offer (offer_id) ON DELETE CASCADE
);

[SQL Fiddle]

दिलचस्प बात यह है कि ऐसा लगता है कि "आशुलिपि" विदेशी कुंजी सिंटैक्स में रेफरेंशियल एक्शन निर्दिष्ट करना काम नहीं करता है (MySQL 5.5.30, 5.6.6 m9 के तहत पुष्टि की गई)। निम्नलिखित को पार्स किया जाता है, लेकिन जब user हटा दिया गया है, संबंधित user_offer मिटाया नहीं जाता:

CREATE TABLE user_offer (
    user_id int REFERENCES user (user_id) ON DELETE CASCADE,
    offer_id int REFERENCES offer (offer_id) ON DELETE CASCADE,
    PRIMARY KEY (user_id, offer_id)
);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या आईपी + सीआईडीआर के साथ आईपी से सीधे चयन क्वेरी से मिलान करने का कोई तरीका है?

  2. एक MySQL डेटाबेस से कॉलम नामों सहित पंडों के डेटा फ्रेम में डेटा आयात करना

  3. मैसकल:पसंद के हिसाब से ऑर्डर करें?

  4. एक MySQL तालिका पंक्ति में समय और दिनांक स्टाम्प

  5. PHP से mySQL में संग्रहित प्रक्रियाओं को कैसे सम्मिलित/बनाना है?