[Dbix-class] how to avoid adding duplicate row to table containing unique field/column

Rob Kinyon rob.kinyon at gmail.com
Wed Oct 12 16:41:29 GMT 2011


ZmluZF9vcl9jcmVhdGUgaXMgYSBtZXRob2Qgb24gREJJeDo6Q2xhc3M6OlJlc3VsdFNldAoKT24g
V2VkLCBPY3QgMTIsIDIwMTEgYXQgMTI6MDYsIFJhamVldiBQcmFzYWQgPHJwLm5ldWxpQHlhaG9v
LmNvbT4gd3JvdGU6Cgo+Cj4KPgo+IHRoZXJlIGlzIGEgZmluZF9hbmRfY3JlYXRlIGZ1bmN0aW9u
IHdoaWNoIGNhbiBkbyB0aGUgam9iLCBpIGFtIG5vdCBhYmxlIHRvCj4gZmluZCBoZWxwIG9uIGl0
LiBkb2VzIGFueW9uZSBrbm93Pwo+Cj4KPgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCj4gKkZyb206KiBSYWplZXYgUHJhc2FkIDxycC5uZXVsaUB5YWhvby5jb20+Cj4gKlRvOiog
ImRiaXgtY2xhc3NAbGlzdHMuc2NzeXMuY28udWsiIDxkYml4LWNsYXNzQGxpc3RzLnNjc3lzLmNv
LnVrPgo+ICpTZW50OiogV2VkbmVzZGF5LCBPY3RvYmVyIDEyLCAyMDExIDEwOjMzIEFNCj4gKlN1
YmplY3Q6KiBbRGJpeC1jbGFzc10gaG93IHRvIGF2b2lkIGFkZGluZyBkdXBsaWNhdGUgcm93IHRv
IHRhYmxlCj4gY29udGFpbmluZyB1bmlxdWUgZmllbGQvY29sdW1uCj4KPiBIZWxsbywKPgo+IElu
IG15IHRlc3Qgc2NyaXB0IGJlbG93LCBpIGFtIHRyeWluZyB0byBmaWd1cmUgb3V0IGhvdyB0byBz
dXBwcmVzcyB0aGUKPiBlcnJvciBtZXNnIHdoZW4gdGhlIHRoZSBzY3JpcHQgdHJ5IHRvIGFkZCBh
IHByZXZpb3VzbHkgcHJlc2VuIHRlbnRyeSBpbnRvCj4gdGhlIHRhYmxlLgo+Cj4gT1IgYmV0dGVy
IGV2ZW4sIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBzY3JpcHQgc2hvdWxkIG5vdCBldmVuIHRyeSB0
byB1cGRhdGUKPiB0aGUgdGFibGUsIGlmIHRoZSByZWNvcmQgaXMgYWxyZWFkeSBwcmVzZW50IGlu
IHRhYmxlLiAodGFibGUgbWF5IGdyb3cgdmVyeQo+IGJpZyBpbiBmdXR1cmUpLgo+Cj4KPiB0YWJs
ZTpBY3Rpb25LZXluYW1lVHlwZVVuaXF1ZVBhY2tlZENvbHVtbkNhcmRpbmFsaXR5Q29sbGF0aW9u
TnVsbENvbW1lbnQgW2ltYWdlOgo+IEVkaXRdIEVkaXQ8aHR0cDovL3d3dy5za2luZy5hdHQvcGhw
TXlBZG1pbi90YmxfaW5kZXhlcy5waHA/ZGI9bXlzcWx0ZXN0ZGImdGFibGU9dGVzdGRidXNlcnMm
aW5kZXg9UFJJTUFSWSZ0b2tlbj02ZjI0Y2I1NzM2YWE0NTMzZjM4ODI0OGU5NDFkYTcwZj4gW2lt
YWdlOgo+IERyb3BdIERyb3A8aHR0cDovL3d3dy5za2luZy5hdHQvcGhwTXlBZG1pbi9zcWwucGhw
P2RiPW15c3FsdGVzdGRiJnRhYmxlPXRlc3RkYnVzZXJzJnNxbF9xdWVyeT1BTFRFUitUQUJMRSsl
NjB0ZXN0ZGJ1c2VycyU2MCtEUk9QK1BSSU1BUlkrS0VZJm1lc3NhZ2VfdG9fc2hvdz1UaGUrcHJp
bWFyeStrZXkraGFzK2JlZW4rZHJvcHBlZCZ0b2tlbj02ZjI0Y2I1NzM2YWE0NTMzZjM4ODI0OGU5
NDFkYTcwZj4KPiBQUklNQVJZQlRSRUVZZXNOb3VzZXJpZDNBCj4KPiBbaW1hZ2U6IEVkaXRdIEVk
aXQ8aHR0cDovL3d3dy5za2luZy5hdHQvcGhwTXlBZG1pbi90YmxfaW5kZXhlcy5waHA/ZGI9bXlz
cWx0ZXN0ZGImdGFibGU9dGVzdGRidXNlcnMmaW5kZXg9dXNlcmlkJnRva2VuPTZmMjRjYjU3MzZh
YTQ1MzNmMzg4MjQ4ZTk0MWRhNzBmPiBbaW1hZ2U6Cj4gRHJvcF0gRHJvcDxodHRwOi8vd3d3LnNr
aW5nLmF0dC9waHBNeUFkbWluL3NxbC5waHA/ZGI9bXlzcWx0ZXN0ZGImdGFibGU9dGVzdGRidXNl
cnMmc3FsX3F1ZXJ5PUFMVEVSK1RBQkxFKyU2MHRlc3RkYnVzZXJzJTYwK0RST1ArSU5ERVgrJTYw
dXNlcmlkJTYwJm1lc3NhZ2VfdG9fc2hvdz1JbmRleCt1c2VyaWQraGFzK2JlZW4rZHJvcHBlZCZ0
b2tlbj02ZjI0Y2I1NzM2YWE0NTMzZjM4ODI0OGU5NDFkYTcwZj4KPiB1c2VyaWRCVFJFRVllc05v
dXNlcmlkM0EKPgo+Cj4gbXlzcWw+IGRlc2MgdGVzdGRidXNlcnM7Cj4gKy0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLSstLS0tLS0rLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0rCj4gfCBGaWVsZCAgICB8
IFR5cGUgICAgICAgIHwgTnVsbCB8IEtleSB8IERlZmF1bHQgfCBFeHRyYSB8Cj4gKy0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0rCj4gfCB1c2Vy
aWQgICB8IGNoYXIoNikgICAgIHwgTk8gICB8IFBSSSB8IE5VTEwgICAgfCAgICAgICB8Cj4gfCBw
YXNzd29yZCB8IHZhcmNoYXIoMTApIHwgWUVTICB8ICAgICB8IE5VTEwgICAgfCAgICAgICB8Cj4g
Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0r
Cj4gMiByb3dzIGluIHNldCAoMC4wMCBzZWMpCj4KPiBteXNxbD4KPgo+IG15c3FsPiBzaG93IGlu
ZGV4IGZyb20gdGVzdGRidXNlcnM7Cj4KPiArLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSsK
PiB8IFRhYmxlICAgICAgIHwgTm9uX3VuaXF1ZSB8IEtleV9uYW1lIHwgU2VxX2luX2luZGV4IHwg
Q29sdW1uX25hbWUgfAo+IENvbGxhdGlvbiB8IENhcmRpbmFsaXR5IHwgU3ViX3BhcnQgfCBQYWNr
ZWQgfCBOdWxsIHwgSW5kZXhfdHlwZSB8IENvbW1lbnQgfAo+Cj4gKy0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0t
LSstLS0tLS0tLS0rCj4gfCB0ZXN0ZGJ1c2VycyB8ICAgICAgICAgIDAgfCBQUklNQVJZICB8ICAg
ICAgICAgICAgMSB8IHVzZXJpZCAgICAgIHwKPiBBICAgICAgICAgfCAgICAgICAgICAgMyB8ICAg
ICBOVUxMIHwgTlVMTCAgIHwgICAgICB8IEJUUkVFICAgICAgfCAgICAgICAgIHwKPiB8IHRlc3Rk
YnVzZXJzIHwgICAgICAgICAgMCB8IHVzZXJpZCAgIHwgICAgICAgICAgICAxIHwgdXNlcmlkICAg
ICAgfAo+IEEgICAgICAgICB8ICAgICAgICAgICAzIHwgICAgIE5VTEwgfCBOVUxMICAgfCAgICAg
IHwgQlRSRUUgICAgICB8ICAgICAgICAgfAo+Cj4gKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t
LS0rCj4gMiByb3dzIGluIHNldCAoMC4wMCBzZWMpCj4KPiBteXNxbD4KPgo+Cj4KPgo+IHNjcmlw
dDoKPgo+ICMhL3Vzci9iaW4vcGVybAo+IHVzZSBzdHJpY3Q7Cj4gdXNlIHdhcm5pbmdzOwo+IHVz
ZSBsaWIgJy4uL3Rlc3RkYic7Cj4gdXNlIE15c3FsdGVzdGRiOjpTY2hlbWE7Cj4gbXkgJHNjaGVt
YTsKPiBteSBAbmV3dXNlcnM7Cj4gJHNjaGVtYSA9Cj4gTXlzcWx0ZXN0ZGI6OlNjaGVtYS0+Y29u
bmVjdCgiZGJpOm15c3FsOmRibmFtZT1teXNxbHRlc3RkYjpsb2NhbGhvc3Q6MzMwNiIsCj4gJ3Jv
b3QnLCAnbXlwYXNzd29yZCcpOwo+IEBuZXd1c2VycyA9IChbJ3RlMTIzNCcsICdwYXNzJ10sIFsn
dGU0NTY3JywgJ3Bhc3MnXSk7Cj4gJHNjaGVtYS0+cG9wdWxhdGUoJ1Rlc3RkYnVzZXInLCBbCj4g
ICAgW3F3L3VzZXJpZCBwYXNzd29yZC9dLAo+ICAgIEBuZXd1c2VycywKPiBdKTsKPgo+Cj4KPgo+
IEkgZ2V0IHRoaXMgaW5mbyBtZXNzYWdlIG91dCBmcm9tIHNjcmlwdChlcnJvcik6Cj4KPiBEQkl4
OjpDbGFzczo6U2NoZW1hOjpwb3B1bGF0ZSgpOiBEdXBsaWNhdGUgZW50cnkgJ3RlMTIzNCcgZm9y
IGtleSAnUFJJTUFSWScKPiBmb3IgcG9wdWxhdGUgc2xpY2U6Cj4gewo+ICAgcGFzc3dvcmQgPT4g
InBhc3MiLAo+ICAgdXNlcmlkID0+ICJ0ZTEyMzQiCj4gfQo+Cj4KPgo+IF9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gTGlzdDogaHR0cDovL2xpc3RzLnNj
c3lzLmNvLnVrL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9kYml4LWNsYXNzCj4gSVJDOiBpcmMu
cGVybC5vcmcjZGJpeC1jbGFzcwo+IFNWTjogaHR0cDovL2Rldi5jYXRhbHlzdC5wZXJsLm9yZy9y
ZXBvcy9iYXN0L0RCSXgtQ2xhc3MvCj4gU2VhcmNoYWJsZSBBcmNoaXZlOgo+IGh0dHA6Ly93d3cu
Z3Jva2Jhc2UuY29tL2dyb3VwL2RiaXgtY2xhc3NAbGlzdHMuc2NzeXMuY28udWsKPgo+Cj4gX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBMaXN0OiBodHRw
Oi8vbGlzdHMuc2NzeXMuY28udWsvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL2RiaXgtY2xhc3MK
PiBJUkM6IGlyYy5wZXJsLm9yZyNkYml4LWNsYXNzCj4gU1ZOOiBodHRwOi8vZGV2LmNhdGFseXN0
LnBlcmwub3JnL3JlcG9zL2Jhc3QvREJJeC1DbGFzcy8KPiBTZWFyY2hhYmxlIEFyY2hpdmU6Cj4g
aHR0cDovL3d3dy5ncm9rYmFzZS5jb20vZ3JvdXAvZGJpeC1jbGFzc0BsaXN0cy5zY3N5cy5jby51
awo+CgoKCi0tIApUaGFua3MsClJvYiBLaW55b24KLS0tLS0tLS0tLS0tLS0gbmV4dCBwYXJ0IC0t
LS0tLS0tLS0tLS0tCkFuIEhUTUwgYXR0YWNobWVudCB3YXMgc2NydWJiZWQuLi4KVVJMOiBodHRw
Oi8vbGlzdHMuc2NzeXMuY28udWsvcGlwZXJtYWlsL2RiaXgtY2xhc3MvYXR0YWNobWVudHMvMjAx
MTEwMTIvZTQyMzc5YTIvYXR0YWNobWVudC0wMDAxLmh0bQo=


More information about the DBIx-Class mailing list