Įterpk pranešimų partiją ir iš karto pasiimk jų id
Darai pranešimų išsiuntimą iš karto keliems vartotojams. Įterpinėti po vieną eilutę reiškia keturis kreipimusis (round-trip) plius riziką, kad servisas persikraus tarp jų. Vienas INSERT su keliomis reikšmėmis plius sugeneruotų identifikatorių grąžinimas išsprendžia abi problemas.
Lentelė notifications(id SERIAL, user_id, msg) kol kas tuščia. Pridėk iš karto keturias eilutes: (user_id = 1, msg = 'hello'), (user_id = 2, msg = 'hi'), (user_id = 1, msg = 'again'), (user_id = 3, msg = 'welcome') — ir toje pačioje komandoje grąžink sugeneruotas id reikšmes kartu su user_id.
Laukiamo rezultato pavyzdys
Taip atrodo teisingas atsakymas — jo eilučių skaičius yra savitas, jis neprivalo sutapti su schemos lentelėmis.
| id | user_id |
|---|---|
| 1 | 1 |
| 2 | 2 |
| 3 | 1 |
Prisijunkite, kad matytumėte pateikimų istoriją
PrisijungtiPrisijunkite, kad naudotumėte DI mentorių
Prisijungti