sql >> Databáze >  >> RDS >> Mysql

Vytvářejte tabulky s dynamickými názvy pomocí uložené procedury

Nemůžete nahradit název tabulky znakem ? v připraveném prohlášení a poté nechat provést vložit název tabulky.

Názvy dynamických tabulek jsou obvykle špatný nápad :je lepší vytvořit 1 velkou tabulku a přidat další (indexovaný) sloupec pro "název virtuální tabulky".

Pokud opravdu potřebujete dynamické tabulky, budete muset spojit název tabulky do PREPARE sám.

Pro a proti názvů dynamických tabulek

Předpokládejme, že namísto umístění všech uživatelů do jedné tabulky users se sloupci ID , Name , e-mail , country , ... , vložíte je do dynamických tabulek users_country , se sloupci ID , Name , e-mail , ...

  • Nelze snadno dotazovat všechny tabulky. Řekněme, že chcete vědět, kolik vašich uživatelů jsou muži – musíte se zeptat na každou tabulku a UNION výsledky. Rychlejší to nebude.

  • Tabulky můžete fyzicky rozdělit pomocí PARTITIONS, ale váš logický pohled je stále stejný. Jakékoli výhody, o kterých si myslíte, že máte pomocí samostatných tabulek, lze obvykle dosáhnout pomocí jiné metody.




  1. Jak importovat soubor .bak SQL Serveru do MySQL?

  2. Jak mohu vytvořit a načíst druhou databázi v ddev?

  3. Spojení dvou tabulek v MySQL

  4. Jak přečtu , as <br /> v PHP/MySQL?