Mysql
 sql >> база данни >  >> RDS >> Mysql

Имена на динамични таблици във функцията за съхранена процедура

Ако искате да съставите SQL израз с помощта на идентификатори, тогава трябва да използвате подготвени оператори; но подготвените оператори не могат да се използват във функции. Така че можете да създадете съхранена процедура с OUT параметър -

CREATE PROCEDURE getName
 (IN tableName VARCHAR(50), IN myId INT(11), OUT myName VARCHAR(50))
BEGIN

  SET @GetName =
    CONCAT('SELECT name INTO @var1 FROM ', tableName, ' WHERE id=', myId);
  PREPARE stmt FROM @GetName;
  EXECUTE stmt;

  SET myName = @var1;
END

Използване на пример -

SET @tableName = 'tbl';
SET @myId = 1005;
SET @name = NULL;
CALL getName(@tableName, @myId, @name);
SELECT @name;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Python и MySQL база данни:практическо въведение

  2. Как да съхранявам NULL стойности в полетата за дата и час в MySQL?

  3. MySQL Показване на индекси в базата данни

  4. Прекомерна MySQL активност

  5. CONVERT_TZ() Примери – MySQL