sql >> Databasteknik >  >> RDS >> Mysql

Mysql - dynamisk SQL tillåts inte i triggern

MYSQL I FUNKTION OCH TRIGGER STÖDDER INTE DYNAMISK INSLAG MEN PROCEDUR KAN STÖDJA DYNAMISK INSLAG.

SÅ DU KAN GÖRA ÄNDRINGAR I PROCEDUREN OCH GÖRA PROCEDURER I attribute_values ​​TABELL INSERT QUERY.

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

OCH EFTER KOMMER DU BARA RINGPROCEDUR

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. Hur kan jag använda ett index på en partitionerad tabell i postgresql 8.3.7

  2. Hur kan jag dela upp en lång, enkel SQLiteOpenHelper i flera klasser, en för varje tabell

  3. Rensa Hibernate 2:a nivås cache efter manuell DB-uppdatering

  4. hur blir man av med nätverksfel (TCP_ERROR) i BIRT?