sql >> Databáze >  >> RDS >> Oracle

Jak mohu podmíněně vytvořit název tabulky pro příkaz SQL CREATE TABLE?

V Oracle by syntaxe byla něco jako

BEGIN
  EXECUTE IMMEDIATE 'CREATE TABLE CUSTOMER_'||v_company_id||' (..)';
END;

To je však pravděpodobně opravdu špatný nápad. Po šesti měsících budete chtít do tabulky přidat sloupec a budete muset zjistit, do kterých tabulek jej přidat.

Uložené procedury v Oracle také potřebují pevný název tabulky (existující tabulky), jinak byste museli vše odkazovat pomocí dynamického SQL, což je bolest.

Je lepší mít tabulku jednoho zákazníka s atributem company_id. Poté použijte Fene Grained Access Control bezpečně filtrovat podle company_id a kontrolovat, kdo vidí jaké údaje společnosti.



  1. Zdá se, že režim H2 postgresql pro mě nefunguje

  2. Kumulativní součet za sadu řádků v mysql

  3. Databázový migrační kód

  4. Mohu nastavit, aby WHERE col LIKE '%' vybral také hodnoty NULL?