sql >> Databáze >  >> RDS >> Mysql

Mysql - dynamický SQL není povolen ve spouštěči

MYSQL VE FUNKCI A SPUŠTĚČ NEPODPORUJE DYNAMICKÉ VLOŽENÍ ALE POSTUP MŮŽE PODPOROVAT DYNAMICKOU VLOŽKU.

TAKŽE MŮŽETE PROVÁDĚT ZMĚNY V POSTUPU A PROVÁDĚT POSTUP V atribut_values ​​TABLE INSERT QUERY.

INSERT INTO atribut_values ​​VALUES(product_id,column_name,val);

A POTOM VÁM BUDE JEN ZAVOLAT POSTUP

CALL atribut_values_after_insert(2,'code',132);

DELIMITER //
drop procedure if exists attribute_values_after_insert //
CREATE PROCEDURE attribute_values_after_insert(IN product_id INT, IN 
column_name VARCHAR(100), IN val VARCHAR(100))
BEGIN
SET @sql = NULL;

INSERT INTO attribute_values VALUES(product_id,column_name,val);

SELECT concat('UPDATE product_attributes SET product_attributes.', column_name, '=', val, ' WHERE id=', product_id) INTO @sql;

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

SET @sql = NULL;
END//
DELIMITER ;

DELIMITER //



  1. mysql vrátí výsledky z aktualizace

  2. Instalace Oracle Developer Tools 12 se nezdařila s tvrzením, že mám Windows XP. Mám Windows 7

  3. Přesouvání webu Wordpress do Dockeru:Chyba při navazování připojení k databázi

  4. Syntaxe SQL nebo omezení databáze?