I am trying to insert values into my comments table and I am getting a error. Its saying that I can not add or update child row and I have no idea what that means. My schema
You have foreign keys between this table and another table and that new row would violate that constraint.
You should be able to see the constraint if you run show create table user, it shows up as CONSTRAINT... and it shows what columns reference what tables/columns.
In this case country references country_type (id) and you are not specifying the value of country. You need to put a value that exists in country_type.
In my case the references values does not corresponding on the related table. Just be sure the values exist on reference table and currents rows has corresponding valid values.
In my case, the value was empty for target table column while the reference table column has it. hence was throwing this error.
Just to throw in my own issue in case it can help someone else, I was copy/pasting entries in my migration files and messed up by putting quotes around an integer. Since the value I was trying to enter was considered a string going into an integer field that was referencing another integer, this error came up.
In my case , its no problem in SQL commands , but the inputs was not sending as $request , so in php.ini file :
max_input_vars was 1000 by default and I changed it to :
max_input_vars = 2000
then you have to restart web server .
Another option could be thath your primary key in source table IS NOT unsigned, so I solved same insert with (notice id int(8) unsigned):
CREATE TABLE IF NOT EXISTS
user(idint(8) unsigned NOT NULL AUTO_INCREMENT,usernamevarchar(32) COLLATE utf8_bin NOT NULL,
passwordvarchar(64) COLLATE utf8_bin NOT NULL,password_realchar(32) COLLATE utf8_bin NOT NULL,codechar(8) COLLATE utf8_bin NOT NULL,
activatedenum('0','1') COLLATE utf8_bin NOT NULL DEFAULT '0',
activation_keychar(32) COLLATE utf8_bin NOT NULL,reset_keyvarchar(32) COLLATE utf8_bin NOT NULL,namevarchar(32) COLLATE utf8_bin NOT NULL,streetvarchar(32) COLLATE utf8_bin NOT NULL,
house_numbervarchar(32) COLLATE utf8_bin NOT NULL,
apartment_numbervarchar(32) COLLATE utf8_bin NOT NULL,cityvarchar(32) COLLATE utf8_bin NOT NULL,zip_codevarchar(32) COLLATE utf8_bin NOT NULL,phone_numbervarchar(16) COLLATE utf8_bin NOT NULL,countryint(8) NOT NULL,provinceint(8) NOT NULL,peselvarchar(32) COLLATE utf8_bin NOT NULL,
register_timetimestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
authorised_timedatetime NOT NULL,edit_timedatetime NOT NULL,saldodecimal(9,2) NOT NULL,referer_idint(8) NOT NULL,
levelint(8) NOT NULL, PRIMARY KEY (id), KEYcountry(country), KEYprovince(province), KEYreferer_id(referer_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=83 ;