sql >> Databasteknik >  >> RDS >> Mysql

Skapa funktioner i phpMyAdmin - Fel:åtkomst nekad du behöver superprivilegiet för denna operation

Problemet var att jag inte hade superprivilegiet, men om jag tar bort DEFINER från frågan behöver jag inte det här privilegiet längre.

Från och med MySQL 5.0.3 kräver CREATE PROCEDURE och CREATE FUNCTION behörigheten CREATE ROUTINE. De kan också kräva SUPER-privilegiet, beroende på DEFINER-värdet, som beskrivs senare i det här avsnittet. Om binär loggning är aktiverad, kan CREATE FUNCTION kräva SUPER-privilegiet, som beskrivs i avsnitt 18.6, "Binär loggning av lagrade program".

Var också tvungen att ställa in avgränsningsfältet under SQL-textrutan.

Här är SQL-frågan utan DEFINER-satsen:

/*!50003 DROP FUNCTION IF EXISTS `f_calc_gst` */;;
/*!50003 SET SESSION SQL_MODE=""*/;;
/*!50003 CREATE*/ /*!50003 FUNCTION `f_calc_gst`(p_ht decimal(15,3), p_province varchar(2)) RETURNS varchar(255) CHARSET utf8
begin
  declare res varchar(255); 
  declare v_gst decimal(15,3);
  declare v_gst_formula varchar(255);

  select GST, GST_formula
  into v_gst, v_gst_formula
  from taxes_periods
  where NOW() between dt_debut and dt_fin
  and id_province = p_province;

  set v_gst_formula = replace(v_gst_formula, 'HT$', p_ht);
  set v_gst_formula = replace(v_gst_formula, 'GST%', v_gst);

  set res = concat('select round(', v_gst_formula, ',2) "gst"');
  return res;
end */;;



  1. Skapa en tillfällig tabell i SQL Server

  2. Hur lagrar man lösenord i databasen säkert?

  3. MySQL Workbench

  4. android SQLite-databas med databas på specifik plats möjligt?