sql >> Database teknologi >  >> RDS >> Oracle

Hvordan kan jeg betinget konstruere et tabelnavn til en SQL CREATE TABLE-sætning?

I Oracle ville syntaksen være noget lignende

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

Men det er nok en rigtig dårlig idé. Seks måneder senere vil du føje en kolonne til tabellen, og du skal finde ud af, hvilke tabeller du skal tilføje den til.

Også lagrede procedurer i Oracle har brug for et fast tabelnavn (på en eksisterende tabel), ellers bliver du nødt til at referere til alt gennem dynamisk SQL, hvilket er en smerte.

Bedre at have en enkelt kundetabel med virksomhedens_id som en attribut. Brug derefter Finkornet adgangskontrol for sikkert at filtrere på virksomheds-id'et for at kontrollere, hvem der kan se, hvad virksomhedens data.



  1. Pivotering af en tabel i SQL (dvs. krydstabulering / krydstabulering)

  2. MySQL tidsstempel med to kolonners standard NU-værdi FEJL 1067

  3. sammenføjning af to borde med flere forhold i skinner

  4. max(længde(felt)) i mysql