Я написал хранимую процедуру для вставки нескольких значений в одну таблицу, используя массив и al oop. Но таблица имеет только последнее значение массива. а также выдает ошибку, говорящую
Столбец не может быть пустым.
Это моя хранимая процедура:
CREATE DEFINER=`root`@`localhost` PROCEDURE `insert_images`(
packageName VARCHAR(300),
packageUniqueCode VARCHAR(100),
packageAddedDate DATE,
packagePrice DOUBLE,
packageDescription VARCHAR(3000),
packageOwnerID INT,
images VARCHAR(500)
)
BEGIN
declare i INT default 0;
START TRANSACTION;
INSERT INTO packages(packageName, packageUniqueCode, packageAddedDate, packagePrice, packageDescription, packageOwnerID)
VALUES(packageName, packageUniqueCode, packageAddedDate, packagePrice, packageDescription, packageOwnerID);
SET i = 1;
WHILE i <= JSON_LENGTH(images) DO
INSERT INTO packageImages(imageName, location, packageOwnerID, packageID)
VALUES(JSON_EXTRACT(images,CONCAT( '$[', `i`, '].imageName')), JSON_EXTRACT(images,CONCAT( '$[', `i`, '].location')), packageOwnerID,LAST_INSERT_ID());
SET i = i + 1;
END WHILE;
COMMIT;
END
И я звоню по этому коду:
CALL insert_images("PJKG", "codea", "2022-11-11", 12, "description", 22, '[{"imageName": "pasinduImage", "location": "uploads/image"},{"imageName": "pasinduImage2", "location": "uploads/image"}]');
Пожалуйста, помогите мне разобраться. Спасибо