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

सीक्वेलाइज़ विदेशी कुंजी को बाधाओं के रूप में नहीं बनाता है

सबसे पहले, ओआरएम के लिए डेटाबेस में विदेशी कुंजी बाधाओं का उपयोग करने के बजाय आंतरिक रूप से इस तरह की चीज़ों को संभालना असामान्य नहीं है।

दूसरा, ORM के लिए जोड़ी . की आवश्यकता होना कोई असामान्य बात नहीं है सभी आंतरिक हैंडलिंग को ट्रिगर करने के लिए एसोसिएशन स्टेटमेंट्स की आप उम्मीद कर सकते हैं।

var Task = this.sequelize.define('Task', { title: Sequelize.STRING })
  , User = this.sequelize.define('User', { username: Sequelize.STRING })

User.hasMany(Task)
Task.belongsTo(User)

अंत में, Sequelize वास्तव में डेटाबेस में विदेशी कुंजी घोषणाएँ लिखेगा, लेकिन केवल तभी जब आप onUpdate के साथ किसी प्रकार की कार्रवाई (या निष्क्रियता) की घोषणा करेंगे। या onDelete

User.hasMany(Task, { onDelete: 'SET NULL', onUpdate: 'CASCADE' })

CREATE TABLE IF NOT EXISTS `Task` (
  `id` INTEGER PRIMARY KEY, 
  `title` VARCHAR(255), 
  `user_id` INTEGER REFERENCES `User` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
);

कोड उदाहरण स्रोत




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PSQLException:वर्तमान लेनदेन निरस्त कर दिया गया है, लेनदेन ब्लॉक के अंत तक आदेशों को अनदेखा कर दिया गया है

  2. PostgreSQL तक पहुँचने के लिए Paramiko के साथ SSH टनल सेट करें

  3. अपरिभाषित विधि auto_upgrad! सिनात्रा/डेटामैपर ऐप को हेरोकू में दबाते समय

  4. तालिका नाम का उचित सम्मिलन

  5. त्रुटि:कॉलम मौजूद नहीं है