When I execute the following SQL command:
INSERT INTO test_usershosts (RID,userid,hid,Usr,Pass)
VALUES (NULL,1,1,\"user\",\"pass\");
I\'m
The reason why you are getting that exception is because you are inserting a record on table test_usershosts
which the value of the userID
is not present on table test_users
. Same as the value of hid
is not also present on table test_hosts
.
Table test_usershosts
is dependent on tables: test_users
and test_hosts
. So be sure that when inserting records on table test_usershosts
, the values for hid
and userid
already exists on the parent tables: test_users
and test_hosts
.
Try executing this query and surely it will be inserted.
INSERT INTO test_usershosts (RID,userid,hid,Usr,Pass)
VALUES (NULL,1120,30,'user','pass');
I see that AUTO_INCREMENT
option on tables: test_users
and test_hosts
, are not needed since you are supplying values on every query you are executing on the two tables.
In test_users
guest's UserID
is 1120
and
in test_hosts
hid = 30
you must change
INSERT INTO test_usershosts (RID,userid,hid,Usr,Pass) VALUES (NULL,1,1,"user","pass");
to:
INSERT INTO test_usershosts (RID,userid,hid,Usr,Pass) VALUES (NULL,1120,30,"user","pass");
in my case in case it serves someone. I was struggling to find the solution what usually happens when making a primary key is also marked as unique. but in my case it was only marked as primary and it was not marked as unique, until I noticed that the option of unica was "open" and I clicked it, until then I let myself make the relationship.
Then for the record ... check that your primary keys are also unique.