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

प्रिज्मा में एक अद्वितीय कुंजी के लिए कई क्षेत्रों का उपयोग करना

मैं प्रिज्मा के साथ एक समस्या में फंस गया जिससे मुझे थोड़ा समय गंवाना पड़ा, इसलिए मैं लिखूंगा कि मैंने इसे कैसे हल किया।

मॉडल में id नहीं था @id . के रूप में चिह्नित फ़ील्ड इसलिए मैंने एक @@unique() added जोड़ा कहने के लिए user और tweet , साथ में, unique . को परिभाषित किया बाधा।

model Like {
  user      Int
  tweet     Int
  createdAt DateTime @default(now())
  @@unique([user, tweet])
}

इसका मतलब है कि हमारे पास (user, tweet) . की 1 से अधिक समान प्रविष्टियां नहीं हो सकती हैं प्रविष्टियां।

जब मैंने

. के साथ एक प्रविष्टि को हटाने का प्रयास किया
await prisma.like.delete({
  where: {
    user: 1,
    tweet: 1
  }
})

मुझे एक त्रुटि संदेश मिलता है:

PrismaClientValidationError: 
Invalid `prisma.like.delete()` invocation:

{
  where: {
    user: 12,
    ~~~~
    tweet: 22
    ~~~~~
  }
  ~~~~~~~~~~~
}

Argument where of type LikeWhereUniqueInput needs exactly one argument, but you provided user and tweet. Please choose one. Available args: 
type LikeWhereUniqueInput {
  user_tweet?: LikeUserTweetCompoundUniqueInput
}

मुझे जो करना था वह था बदलाव

await prisma.like.delete({
  where: {
    user: 1,
    tweet: 1
  }
})

करने के लिए

await prisma.like.delete({
  where: {
    user_tweet: {
      user: 1,
      tweet: 1
    }
  }
})

दूसरे शब्दों में, अद्वितीय फ़ील्ड को एक अंडरस्कोर के साथ संयोजित करना।

पूर्व-निरीक्षण में त्रुटि संदेश इसे समझा रहा था, लेकिन मुझे यह नहीं मिला।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सरल शब्दों में DATEADD, DATEDIFF और DATEPART T-SQL फ़ंक्शंस का उपयोग करना

  2. Alteryx में जावा डेटा के साथ कार्य करना

  3. रैंक के साथ एसक्यूएल में पंक्तियों की रैंकिंग स्थिति कैसे जोड़ें ()

  4. डेटाबेस डिजाइन Vertabelo . के साथ

  5. ORA-03135 - RMAN डुप्लीकेट