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

Параметризирано име на таблица

Единственият начин, без динамично изграждане на заявки, е да кодирате твърдо във всяка комбинация и да изберете тази, която искате.


Ако името на таблицата е параметър за съхранена процедура, това може да бъде в IF блокове. Но се чувства тромаво.


Ако полетата от всяка таблица са еднакви, можете да обедините таблиците заедно и да изберете от тях...

CREATE VIEW myUnifiedStructure AS
      SELECT 'Table1' AS tableName, * FROM Table1
UNION SELECT 'Table2' AS tableName, * FROM Table2
UNION SELECT 'Table3' AS tableName, * FROM Table3
-- etc

SELECT * FROM myUnifiedStructure WHERE tableName = 'Table1'


Ако полетата са различни във всяка таблица, може да се интересувате само от подмножество от полета...

CREATE VIEW myUnifiedStructure AS
      SELECT 'Table1' AS tableName, field1 AS field1, field4 AS field2 FROM Table1
UNION SELECT 'Table2' AS tableName, field2 AS field1, field3 AS field2 FROM Table2
UNION SELECT 'Table3' AS tableName, field2 AS field1, field4 AS field2 FROM Table3
-- etc


Или можете да подадете NULL за полета, които не съществуват в изходната таблица...

CREATE VIEW myUnifiedStructure AS
      SELECT 'Table1' AS tableName, NULL   AS field1, field2 AS field2 FROM Table1
UNION SELECT 'Table2' AS tableName, field1 AS field1, field2 AS field2 FROM Table2
UNION SELECT 'Table3' AS tableName, field1 AS field1, NULL   AS field2 FROM Table3
-- etc


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jqGrid - Уникален идентификатор за нов ред

  2. Как да активирате MySQL Query Cache

  3. SQL - Изберете редове от две различни таблици

  4. Имената на динамични таблици/обекти в доктрина 2

  5. Ускоряване (насипно) Вмъкване в MySQL с Python