Re: Models confused?
Re: Models confused?
- Subject: Re: Models confused?
- From: Ramsey Gurley <email@hidden>
- Date: Wed, 22 Dec 2010 13:30:57 -0500
MySQL does not have deferred fk constraints. EOF doesn't order
operations, it just commits en masse. So, if you want to use fk
constraints with MySQL, you have to order the operations yourself.
There is some magic in wonder for this
http://lists.apple.com/archives/Webobjects-dev/2007/Jun/msg00751.html
However, keep in mind that required, circular relationships cannot be
modeled in MySQL if you use FK constraints. If the relationship is
circular, no amount of operation ordering will fix your problem AFAIK.
...
Or you can just turn off constraints and live dangerously... or switch
to Postgres. It's free and has deferred FK constraints. Or
Frontbase.... or if you're made out of money, Oracle... I even read
SQLite has deferred FKs... cool! (^_^)
Ramsey
On Dec 22, 2010, at 1:13 PM, Jesse Tayler wrote:
Hi Paul
thanks for your reply -- but
How do you mean?
I establish other foreign keys on other tables without troubles?
Their SQL runs. this line is my only trouble - I thought it was
mismatched "id" types for some reason, but you think the trouble is
in my model somewhere?
On Dec 22, 2010, at 12:54 PM, Paul D Yu wrote:
Jesse
I believe foreignKeys do not work on MySQL with EOF.
Paul
On Dec 22, 2010, at 12:53 PM, Jesse Tayler wrote:
I've had ERAttachment tests working once or twice, now I think
maybe I've gotten models confused somewhere perhaps.
I have a poster relationship from user which eogen's a line to add
a foreign key, which I think should be there, but this step fails
- in past experience, this has been mismatched id key types, but I
don't see that here.
Everything is setup with "id" as a prototype for mysql.
I see some similar troubles with Postgres on the list or google,
but I'm on Mysql and just starting a new dev. environment etc.
This foreign key should be there right? Any ideas why it might be
failing?
userTable.addForeignKey("posterId", "ERAttachment", "id");
Can't create table 'mtly.#sql-731_26c3' (errno: 150)
Failed to execute 'ALTER TABLE USER ADD CONSTRAINT
USER_posterId_posterId_FK FOREIGN KEY (posterId) REFERENCES
ERAttachment (id)'.
If I ignore, I'll get a runtime:
com.webobjects.eoaccess.EOGeneralAdaptorException:
EvaluateExpression failed: : Next exception:SQL State:23000 --
error code: 1452 -- msg: Cannot add or update a child row: a
foreign key constraint fails (`mtly`.`ERAttachment`, CONSTRAINT
`ERAttachment_attachmentDataID_attachmentDataID_FK` FOREIGN KEY
(`attachmentDataID`) REFERENCES `ERAttachmentData` (`id`))
Reason:
EvaluateExpression failed: <com.webobjects.jdbcadaptor._MySQLPlugIn
$MySQLExpression: "INSERT INTO ERAttachment(size, width, height,
attachmentDataID, available, thumbnail, creationDate, ownerID,
configurationName, smallData, mimeType, originalFileName, webPath,
id, proxied, storageType) VALUES (?, NULL, NULL, ?, ?, NULL, ?,
NULL, NULL, NULL, ?, ?, ?, ?, ?, ?)" withBindings: 1:73207(size),
2:2(attachmentDataID), 3:true(available), 4:2010-12-21
22:23:33(creationDate), 5:"image/jpeg"(mimeType),
6:"jesseheadshot.jpg"(originalFileName), 7:"/2.jpg"(webPath),
8:2(id), 9:true(proxied), 10:"db"(storageType)>: Next
exception:SQL State:23000 -- error code: 1452 -- msg: Cannot add
or update a child row: a foreign key constraint fails
(`mtly`.`ERAttachment`, CONSTRAINT
`ERAttachment_attachmentDataID_attachmentDataID_FK` FOREIGN KEY
(`attachmentDataID`) REFERENCES `ERAttachmentData` (`id`))
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden