Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Twórz tabele z dynamicznymi nazwami za pomocą procedury przechowywanej

Nie możesz zastąpić nazwy tabeli przez ? w przygotowanym oświadczeniu a następnie polecenie wykonania wstawi nazwę tabeli.

Dynamiczne nazwy tabel to zwykle zły pomysł :lepiej jest zrobić 1 dużą tabelę i dodać dodatkową (indeksowaną) kolumnę dla "wirtualnej nazwy tabeli".

Jeśli naprawdę potrzebujesz dynamicznych tabel, musisz połączyć nazwę tabeli z PREPARE się.

Za i przeciw dynamicznych nazw tabel

Załóżmy, że zamiast umieszczać wszystkich użytkowników w jednej tabeli, users z kolumnami ID , Name , e-mail , country , ... , umieszczasz je w dynamicznych tabelach, users_country , z kolumnami ID , Name , e-mail , ...

  • Nie możesz łatwo przeszukiwać wszystkich tabel. Załóżmy, że chcesz wiedzieć, ilu Twoich użytkowników to mężczyźni — musisz wykonać zapytanie do każdej tabeli i UNION wyniki. Nie będzie szybciej.

  • Mimo to możesz fizycznie podzielić tabele przy użyciu PARTYCJI, ale widok logiczny jest nadal taki sam. Jakąkolwiek przewagę, którą uważasz, że masz przy użyciu oddzielnych stołów, można zwykle osiągnąć inną metodą.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql wybierz dynamiczne wartości wierszy jako nazwy kolumn, inną kolumnę jako wartość

  2. Funkcja SQL Regex podobna do funkcji MySql REGEX

  3. ignoruj ​​zduplikowane wyniki z pętli foreach przechodzącej przez zapytanie mysql

  4. Unikanie niejednoznacznych błędów w kolumnach podczas używania JOIN w MySQL

  5. Aktualizacja SQL z tabeli losowych imion