Du kan ikke erstatte et tabelnavn med en ?
i en udarbejdet redegørelse og få derefter execute til at indsætte tabelnavnet.
Dynamiske tabelnavne er normalt en dårlig idé :det er bedre at lave 1 stor tabel og tilføje en ekstra (indekseret) kolonne for det "virtuelle tabelnavn".
Hvis du virkelig har brug for dynamiske tabeller, skal du sammensætte tabelnavnet i PREPARE sig selv.
Fordele og ulemper ved dynamiske tabelnavne
Antag, at i stedet for at placere alle brugere i én tabel, users
med kolonner ID
, Name
, e-mail
, country
, ...
, sætter du dem i dynamiske tabeller, users_country
, med kolonner ID
, Name
, e-mail
, ...
-
Du kan ikke nemt forespørge alle tabeller. Lad os sige, at du vil vide, hvor mange af dine brugere der er mænd - du skal forespørge på hver tabel, og UNION resultaterne. Bliver ikke hurtigere.
-
Du kan alligevel opdele tabellerne fysisk ved hjælp af PARTITIONS, men din logiske visning er stadig den samme. Enhver fordel, du tror, du har ved at bruge separate tabeller, kan normalt opnås ved hjælp af en anden metode.