繁体   English   中英

错误代码:1136。在将向3个表中添加数据的过程中,列数与行1的值计数不匹配?

[英]Error Code: 1136. Column count doesn't match value count at row 1 in a procedure which will add data in 3 tables?

        CREATE PROCEDURE `sp_Add_Game` (IN Game_Name_ip VARCHAR(100),IN            Genre_ip  ENUM('Controllers', 'Extreme Sports', 'Action & Adventure', 'Racing',      'RPG', 'Baseball', 'Sports', 'Systems', 'Puzzle', 'Fighting', 'Strategy', 'FPS', 'Wrestling', 'Accessories', 'Soccer', 'Other', 'Football', 'Party', 'Arcade', 'Basketball', 'Simulation', 'Music'),
        IN Rating_ip ENUM('1', '2', '3', '4', '5'),IN Platform_Name_ip      ENUM('N64', 'NES', 'Super Nintendo', 'Gamecube', 'Wii', 'Playstation 1', 'Playstation 2', 'Playstation 3', 'Xbox', 'Xbox 360', 'Sega Genesis', 'Atari 2600', 'Gameboy Color', 'Gameboy Advance'),IN Completeness_Type_ip ENUM('B', 'I', 'C', 'BC', 'BI', 'IC', 'BIC'), IN Condition_ip ENUM('New', 'Mint', 'Very Good', 'Good', 'Acceptable', 'Poor'),
         IN Purchase_Date_ip DATE,IN Purchase_Price_ip DECIMAL(4,2))
        BEGIN
         DECLARE Game_key int;
          DECLARE MyCollection_Key int;
        DECLARE Platform_Key int;
         START TRANSACTION;
          INSERT INTO videogame_collection_1.video_game(`Game_Name`,   `Genre`,          `Rating`) VALUES (Game_Name_ip, Genre_ip,Rating_ip,Rating_ip);
                   SET Game_key = LAST_INSERT_ID();
                        INSERT INTO videogame_collection_1.mycollection     (`Completeness_Type`, `Condition`, `Purchase_Date`, `Purchase_Price`) VALUES    (Completeness_Type_ip, Condition_ip, Purchase_Date_ip, Purchase_Price_ip);
                               SET MyCollection_Key = LAST_INSERT_ID();
                          INSERT INTO    videogame_collection_1.platform(`Platform_Name`) VALUES (Platform_Name_ip);
                                    SET Platform_Key = LAST_INSERT_ID();
                                INSERT INTO     videogame_collection_1.video_game_platform_mycollection(`MyCollection_Id`, `Game_Id`, `Platform_Id`) VALUES (MyCollection_Key,Game_key,Platform_Key);
                          COMMIT;
                              END

当我尝试从前端将视频游戏附加数据插入Mysql数据库时,出现上述错误。 它将数据插入3个不同的表中。 那么,我该如何实现呢?

在此语句中,您两次输入Rating_ip值:

  INSERT INTO videogame_collection_1.video_game(`Game_Name`,   `Genre`,          `Rating`) VALUES (Game_Name_ip, Genre_ip,Rating_ip,Rating_ip);

它应显示为:

  INSERT INTO videogame_collection_1.video_game(`Game_Name`,   `Genre`,          `Rating`) VALUES (Game_Name_ip, Genre_ip,Rating_ip);

收到错误的原因是,您试图将4列的数据插入到仅指定3列的插入语句中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM