TEL:400-8793-956
当前位置:程序、服务器

在MySQL中获取外键约束失败数据插入错误

提问者: 近期获赞: 浏览人数: 发布时间:2021-01-11 10:10:55

 问:我正在尝试创建2个表并将数据插入其中,但是却遇到此错误创建运动员表失败SQLSTATE [23000]:完整性约束冲突:1217无法删除或更新父行:外键约束失败

 
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();
    }
    ?>
 
 
答:我刚刚检查了您提到的查询,就可以很好地运行这些查询,因此您需要检查代码流或数据库设置。
上一篇: Android-信息泄漏缺陷OutputStream
下一篇: 如何解决Android中的“相机无法连接”错误