Join the social network of Tech Nerds, increase skill rank, get work, manage projects...
 
  • Getting Foreign Key Constraint Fails Data Insertion Error in MySQL

    • 0
    • 0
    • 0
    • 2
    • 0
    • 0
    • 0
    • 595
    Answer it

    I am trying to create to 2 tables and inserting data into them but I am getting this error Creating Athlete the table failed SQLSTATE[23000]: Integrity constraint violation: 1217 Cannot delete or update a parent row: a foreign key constraint fails

    try
        {
        $dropQuery = "DROP TABLE IF EXISTS Country";
        $pdo->exec($dropQuery);
        $dropQuery = "DROP TABLE IF EXISTS Athlete";
        $pdo->exec($dropQuery);
        
        
        
        $createQuery = "CREATE TABLE Country
            (
                countryID int(11) NOT NULL AUTO_INCREMENT,
                name varchar(30) NOT NULL,  
                population decimal(10,0),
                flagImage varchar(30) NOT NULL,
                PRIMARY KEY (countryID)
            )";
            
            
            $pdo->exec($createQuery);
        }
        catch(PDOException $e)
        {
            $error = " Creating Country the table failed";
            include 'error.php';
            exit();
        }
        try
        {
        $createQuery = "CREATE TABLE Athlete
            (
                athleteId int(11) NOT NULL AUTO_INCREMENT,
                lastName varchar(30) NOT NULL,
                firstName varchar(30) NOT NULL,
                gender char(1) NOT NULL,
                image varchar(300) NOT NULL,
                sport varchar(30) NOT NULL,
                countryID int(11) NOT NULL,
                CONSTRAINT Athlete_Country FOREIGN KEY (countryID) REFERENCES Country(countryID),
                PRIMARY KEY (athleteId)
            )";
            
    
            
            $pdo->exec($createQuery);
        }
        catch(PDOException $e)
        {
            $error = " Creating Athlete the table failed";
            include 'error.php';
            exit();
        }
        
        
        
        
        try
        {        
                $query = "INSERT INTO Country (name,population,flagImage) VALUES ('usa',324206000,'usa.jpg')";
                $pdo->exec($query);
                $query = "INSERT INTO Country (name,population,flagImage) VALUES ('Hungary',9823000,'hungary.jpg')";
                $pdo->exec($query);
                $query = "INSERT INTO Country (name,population,flagImage) VALUES ('Jamaica',2930050,'jamaica.jpg')";
                $pdo->exec($query);
                $query = "INSERT INTO Country (name,population,flagImage) VALUES ('United Kindom',65341183,'uk.jpg')";
                $pdo->exec($query);
                $query = "INSERT INTO Country (name,population,flagImage) VALUES ('Australia',25054000,'australia.jpg')";
                $pdo->exec($query);
                $query = "INSERT INTO Country (name,population,flagImage) VALUES ('South Africa',54956900,'southafrica.jpg')";
                $pdo->exec($query);
                $query = "INSERT INTO Country (name,population,flagImage) VALUES ('Ethiopia',92206005,'ethiopia.jpg')";
                $pdo->exec($query);
                $query = "INSERT INTO Country (name,population,flagImage) VALUES ('Poland',38437239,'poland.jpg')";
                $pdo->exec($query);
                $query = "INSERT INTO Country (name,population,flagImage) VALUES ('China',1379442000,'china.jpg')";
                $pdo->exec($query);
                
    
        }
         catch(PDOException $e)
        {
            $error = "Creating Country data failed";
            include 'error.php';
            exit();
        }
        try
        {        
                $query = "INSERT INTO Athlete VALUES (1,'Phelps','Michael','m','Phelps.jpg','Swimming',1)";
                $pdo->exec($query);
                $query = "INSERT INTO Athlete VALUES (2,'Ledecky','Katie','f','Ledecky.jpg','Swimming',1)";
                $pdo->exec($query);
                $query = "INSERT INTO Athlete VALUES (3,'Biles','Simone','f','Biles.jpg','Gymnastics',1)";
                $pdo->exec($query);
                $query = "INSERT INTO Athlete VALUES (4,'Hosszu','Katinka','f','Hosszu.jpg','Swimming',2)";
                $pdo->exec($query);
                $query = "INSERT INTO Athlete VALUES (5,'Bolt','Usain','m','Bolt.jpg','Athletics',3)";
                $pdo->exec($query);
                $query = "INSERT INTO Athlete VALUES (6,'Kenny','Jason','m','Kenny.jpg','Cycling',4)";
                $pdo->exec($query);
                $query = "INSERT INTO Athlete VALUES (7,'Danuta','Kozak','f','Danuta.jpg','Canoeing',2)";
                $pdo->exec($query);
                $query = "INSERT INTO Athlete VALUES (8,'Murphy','Ryan','m','Murphy.jpg','Swimming',5)";
                $pdo->exec($query);
                $query = "INSERT INTO Athlete VALUES (9,'Manuel','Simone','f','Manuel.jpg','Swimming',1)";
                $pdo->exec($query);
                $query = "INSERT INTO Athlete VALUES (10,'Dirado','Maya','f','Dirado.jpg','Swimming',1)";
                $pdo->exec($query);
                $query = "INSERT INTO Athlete VALUES (11,'van Niekirk','Wayde','m','vanNiekirk.jpg','Athletics',6)";
                $pdo->exec($query);
                $query = "INSERT INTO Athlete VALUES (12,'Ayana','Almaz','f','Ayana.jpg','Athletics',7)";
                $pdo->exec($query);
                $query = "INSERT INTO Athlete VALUES (13,'Wlodarczyk','Anita','f','Wlodarczyk.jpg','Athletics',8)";
                $pdo->exec($query);
                $query = "INSERT INTO Athlete VALUES (14,'Long','Qingquan','m','Long.jpg','Weightlifting',9)";
                $pdo->exec($query);
                
    
        }
         catch(PDOException $e)
        {
            $error = "Creating Athlete the data failed";
            include 'error.php';
            exit();
        }
        ?>

     

 2 Answer(s)

Sign In
                           OR                           
                           OR                           
Register

Sign up using

                           OR                           
Forgot Password
Fill out the form below and instructions to reset your password will be emailed to you:
Reset Password
Fill out the form below and reset your password: