hi there,

I have a rather basic problem I would be glad to get some help:
What I intend to do is:
- create a person-list
- create a buddy-list
    each entry in the person-list can have 0 to many buddies
- when an entry in the person-list is deleted, I would like to
  have correspnding entries in the buddies list removed.

This are my tables:

# ---------------------------------------------------------------------- #
# Add table "tblUser"                                                    #
# ---------------------------------------------------------------------- #

CREATE TABLE  tblUser
(
  userDBID INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
  username VARCHAR(50) NOT NULL UNIQUE,
  description VARCHAR(200)
)
ENGINE = InnoDB;

# ---------------------------------------------------------------------- #
# Add table "tblBuddies"                                                 #
# ---------------------------------------------------------------------- #

CREATE TABLE tblBuddies (
    userDBID INTEGER,
    buddyDBID INTEGER,
    CONSTRAINT PK_tblBuddies PRIMARY KEY (userDBID, buddyDBID)
)
ENGINE = InnoDB;
CREATE INDEX userDBID_buddyDBID ON tblBuddies (userDBID, buddyDBID);
ALTER TABLE tblBuddies ADD CONSTRAINT tblBuddies_parent
    FOREIGN KEY (userDBID) REFERENCES tblUser (userDBID);

ALTER TABLE tblBuddies ADD CONSTRAINT tblBuddies_buddy
    FOREIGN KEY (buddyDBID) REFERENCES tblUser (userDBID) ON DELETE CASCADE;

When I execute the following statement:
    INSERT INTO tblBuddies (userDBID,buddyDBID) VALUES ('test user', 'test user 
2');
I get the the error:
    ERROR 1452 (23000): Cannot add or update a child row: a foreign key 
constraint fails
(`adhoco_vpn_mapper_test/tblBuddies`, CONSTRAINT `tblBuddies_parent` FOREIGN 
KEY (`userDBID`) REFERENCES `tblUser`
(`userDBID`))

I would be very gratefull, if somebody could help me getting this straigth ( 
and point me to my missconseptions)

thanks
robert

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to