![](/img/trans.png)
[英]cursor in mysql returns error Error Code: 1136. Column count doesn't match value count at row 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.