sql >> データベース >  >> RDS >> Mysql

Mysql-動的SQLはトリガーで許可されていません

    MYSQLINFUNCTIONおよびTRIGGERは動的挿入をサポートしていません ただし、手順は動的挿入をサポートできます。

    そのため、プロシージャを変更したり、attribute_values TABLEINSERTQUERYでプロシージャを作成したりできます。

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

    そして、あなたがただの電話手順になる後

    CALL attribute_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テーブルから重複する値を合計する方法

    2. NOTIN句で区切られた文字列を渡す

    3. PostgreSQL挿入用に2つの異なるシーケンスIDを生成するHibernate

    4. java.lang.ClassNotFoundException:com.mysql.jdbc.Driver(jreのライブラリ内)